#python #httpx
Вопрос:
Я пытаюсь загрузить файл с помощью httpx. Это мой сценарий:
import httpx
headers = { 'action': 'upload' }
file = 'filename.zip'
auth = httpx.DigestAuth('user', 'password')
files = {'upload-file': open('files/' file, 'rb')}
with httpx.Client() as client:
r = httpx.post('http://192.168.10.10/upload', files=files, auth=auth, headers=headers)
Размер файла составляет 70 МБ, и сценарий завершается ошибкой, прежде чем запрос отправит полные 70 МБ с
httpcore.WriteError: [Errno 32] Broken pipe
Если я удалю auth=auth
http-запросы, они отправят полные 70 МБ, и запрос завершится со статусом 401.
Запрос, подобный этому, успешен:
r = httpx.get('http://192.168.10.10/index.html', auth=auth)
Почему аутентификация каким-то образом приведет к сбою загрузки?
Комментарии:
1. всегда помещайте полное сообщение об ошибке (начинающееся со слова «Обратная связь») в вопрос (не комментарий) в виде текста (не скриншот, не ссылка на внешний портал). Есть и другая полезная информация.
2. без
auth
вас получите статус401
, поэтому он также не загружал его.3. ваша проблема не в httpx, а в сервере, который у вас есть
http://192.168.10.10
. На некоторых серверах может быть ограничение на загружаемые данные, и вам, возможно, придется изменить настройки на сервере. Но все это зависит от сервера, на котором вы находитесьhttp://192.168.10.10
.