POST de datos de múltiples partes utilizando solicitudes de python: no se encontró ningún límite de múltiples partes

Tengo un formulario de datos y un archivo para enviar en el mismo POST. Por ejemplo, {duration: 2000, file: test.wav}. Vi los muchos subprocesos aquí en la publicación de datos de múltiples partes / formularios utilizando solicitudes de python. Fueron útiles, especialmente este .

Mi solicitud de muestra es la siguiente:

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) 

Pero cuando ejecuto el código anterior, obtengo este error:

5: 59: 55.338 Dbg 09900 [DEBUG] Resolviendo la excepción del manejador [nulo]: org.springframework.web.multipart.MultipartException: No se pudo analizar la solicitud de servlet de varias partes; la excepción anidada es org.apache.commons.fileupload.FileUploadException: la solicitud se rechazó porque no se encontró un límite de varias partes.

Entonces, mis preguntas son: 1) ¿Cómo puedo ver el contenido de la solicitud que se envía? No se pudo usar Wirehark, no está en la red. 2) ¿Por qué falta el límite en los datos codificados? ¿Me perdí algo? Por favor, señale.

NUNCA debes establecer ese encabezado tú mismo. Establecemos el encabezado correctamente con el límite. Si establece ese encabezado, no lo haremos y su servidor no sabrá qué límite esperar (ya que se agrega al encabezado). Quita tu encabezado personalizado de Content-Type y estarás bien.

¡Sacar el encabezado Content-Type con “multipart / form-data” explícito funcionó!