Python запрашивает загрузку изображения HTTP POST
У меня возникла проблема с запросом POST, который сводит меня с ума. Я пытаюсь загрузить изображение, используя POST, используя запросы Python, реплицируя исходный запрос
Прежде всего, это оригинальный запрос, который я вижу в Firebug, что заголовок запроса:
Accept application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.7,it;q=0.3
Cache-Control no-cache
Connection keep-alive
Content-Length 26051
Content-Type multipart/form-data; boundary=--------------------------- 37693668010849786771875799013
Cookie some cookie
DNT 1
Host my.host.com
Pragma no-cache
Referer https://my.host.com/postad/1dc185ff9e814068be23ed674956a190
User-Agent Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Firefox/38.0
X-Requested-With XMLHttpRequest
и тело запроса POST:
-----------------------------5697279162042627623887894974
Content-Disposition: form-data; name="image"; filename="clip.jpg"
Content-Type: image/jpeg
ÿØÿà�JFIF������ÿÛ�C� .....
-----------------------------5697279162042627623887894974
Content-Disposition: form-data; name="upload"
-----------------------------5697279162042627623887894974--
Это код, который я использую для загрузки изображения:
files = {'image': ('clip.jpg', open('clip.jpg', 'rb'))}
post_image_url = "https://my.host.com/postad/563a533d9105448dbaf853f7ca0265fa/images"
r = session.post(post_image_url, files=files)
но я всегда получаю ошибку 404, предполагая, что запрос не правильный. Думаю, мне нужно скорректировать запрос, чтобы отразить исходный запрос, рассмотренный в Firebug Я считаю, что запрос не завершен, возможно, мне не хватает последней части запроса:
-----------------------------5697279162042627623887894974
Content-Disposition: form-data; name="upload"
-----------------------------5697279162042627623887894974--
который я никак не могу воспроизвести.
Любая идея?
поблагодарить
1 ответ
Добавление этого ответа, если кому-то нужно в будущем.
Пожалуйста, найдите ниже код для отправки файла изображения в запросах Python. Здесь логотип - это ключевое слово для файла изображения, который один из наших серверов принимает в качестве входных данных. Отсюда и логотип. Также убедитесь, что вы удалили "Content-type" из заголовков.
response = requests.post(url,data=data,headers=headers, files={'logo':open("your_image_file.jpeg",'rb')})
Я нашел решение, это довольно просто:
data = {'upload': ''}
Мне нужно было передать строку загрузки таким образом и вуаля!