Формат настроек запроса POST на Python

#python #post #request

#python #Публикация #запрос

Вопрос:

Я пытаюсь отправить POST-запрос с помощью Python для загрузки файла. Я конвертирую следующий пример кода в Python, но я не знаком с тем, как это настроить.

 POST /path/to/upload/script HTTP/1.0
Connection: Keep-Alive
User-Agent: My Client App v1.0
Host:
https://bulksell.ebay.com/ws/eBayISAPI.dll?FileExchangeUpload
Content-type: multipart/form-data;
boundary=THIS_STRING_SEPARATES
Content-Length: 256
--THIS_STRING_SEPARATES
Content-Disposition: form-data; name="token"
12345678987654321
--THIS_STRING_SEPARATES
Content-Disposition: form-data; name="file";
filename="listings.csv"
Content-Type: text/csv
... contents of listings.csv ...
--THIS_STRING_SEPARATES
  

Я думаю, мне нужно установить заголовки следующим образом:

 headers = {
    "Connection": "Keep-Alive",
    "User-Agent": "My Client App v1.0",
    "Host": "https://bulksell.ebay.com/ws/eBayISAPI.dll?FileExchangeUpload"
    "Content-type": "multipart/form-data;"
    "Content-Length": "256",
    "Host": "https://bulksell.ebay.com/ws/eBayISAPI.dll?FileExchangeUpload",
    ...
    }
  

Нужно ли включать эти --THIS_STRING_SEPERATES строки?

Как мне включить сюда свой токен? Пример просто отправляет его отдельно.

Каков был бы правильный способ форматирования этого для request.post ?

Спасибо.

Комментарии:

1. --THIS_STRING_SEPERATES должно быть в теле, чтобы отделить много файлов.

2. если вы используете module, requests тогда вам нужно использовать requests.post(..., files=...) , и вам не нужно его форматировать. Документ: ОПУБЛИКОВАТЬ файл с кодировкой из нескольких частей

3. Я не уверен, но, вероятно, вы можете добавить token как requests.post(... data={'token': '12345678987654321'}, files= ...)

4. если вы используете requests , то после отправки данных вы можете проверить r.request.headers и r.request.body посмотреть, как они были отформатированы. В конечном итоге вы можете установить прокси-сервер mitmproxy или Charles и использовать его в своем запросе для просмотра того, что он отправляет — как он был отформатирован.

5. Когда вы говорите «вам не нужно его форматировать», могу ли я просто использовать «»»строку»»»» для передачи всего запроса requests.post(..., files=...) ?