Cómo enviar JSON como parte de la solicitud POST multiparte
Tengo el siguiente formulario de solicitud POST (simplificado):
POST /target_page HTTP/1.1
Host: server_IP:8080
Content-Type: multipart/form-data; boundary=AaaBbbCcc
--AaaBbbCcc
Content-Disposition: form-data; name="json"
Content-Type: application/json
{ "param_1": "value_1", "param_2": "value_2"}
--AaaBbbCcc
Content-Disposition: form-data; name="file"; filename="..."
Content-Type: application/octet-stream
<..file data..>
--AaaBbbCcc--
Intento enviar una solicitud POST conrequests
:
import requests
import json
file = "C:\\Path\\To\\File\\file.zip"
url = 'http://server_IP:8080/target_page'
def send_request():
headers = {'Content-type': 'multipart/form-data; boundary=AaaBbbCcc'}
payload = { "param_1": "value_1", "param_2": "value_2"}
r = requests.post(url, files={'json': (None, json.dumps(payload), 'application/json'), 'file': (open(file, 'rb'), 'application/octet-stream')}, headers=headers)
print(r.content)
if __name__ == '__main__':
send_request()
pero devuelve estado400
con el siguiente comentario:
Required request part \'json\' is not present.
The request sent by the client was syntactically incorrect.
Por favor, señale mi error. ¿Qué debo cambiar para que funcione?