Подтвердить что ты не робот

Multipart data POST с использованием запросов python: не найдено многострочной границы

У меня есть данные формы, а также файл для отправки в том же POST. Например, {продолжительность: 2000, файл: test.wav}. Я видел много потоков здесь, в проводке multipart/form-data, используя запросы python. Они были полезны, особенно этот.

Мой запрос образца выглядит следующим образом:

    files = {'file': ('wavfile', open(filename, 'rb'))}
    data = {'duration': duration}
    headers = {'content-type': 'multipart/form-data'}
    r = self.session.post(url, files=files, data=data, headers=headers)

Но когда я выполняю вышеуказанный код, я получаю эту ошибку:

5: 59: 55.338 Dbg 09900 [DEBUG] Исключение исключения из обработчика [null]: org.springframework.web.multipart.MultipartException: не удалось разобрать многосердечный запрос сервлета; Вложенное исключение - org.apache.commons.fileupload.FileUploadException: запрос был отклонен, потому что не было найдено многострочной границы.

Итак, мои вопросы: 1) Как я могу увидеть содержимое отправляемого запроса? Не удалось использовать wirehark, его не по сети. 2) почему граница отсутствует в закодированных данных? Я пропустил что-нибудь, пожалуйста, укажите.

4b9b3361

Ответ 1

Вы никогда не должны устанавливать этот заголовок самостоятельно. Мы правильно устанавливаем заголовок с границей. Если вы установите этот заголовок, мы не будем, и ваш сервер не будет знать, какую границу ожидать (поскольку он добавлен в заголовок). Удалите свой собственный заголовок Content-Type, и все будет в порядке.

Ответ 2

Вызов заголовка Content-Type с явным "multipart/form-data"!

Ответ 3

Чтобы добавить границу, добавьте в заголовок следующее:

headers = {
    'content-type': 'multipart/form-data; boundary=ebf9f03029db4c2799ae16b5428b06bd'
}