Jestem początkujący. Próbuję zmienić Curl Cmd do właściwego żądania pocztowego w moim kodzie Python. Za każdym razem, otrzymuję błędy 404 lub 400. Jestem trochę zagubiony. Dzięki.

Żądanie Curl: (echo -n '{"data": "'; base64 test-1.pdf; echo '", "extension": ".pdf"}') | curl -X POST -H "Content-Type: application/json" -d @- http://localhost:5000

Mój kod w Pythonie:

import json
import requests
url ='http://localhost:5000/POST'
newHeaders = {'Content-Type': 'application/json'}
response = requests.post(url, json={"data": "'; base64 test-1.pdf; echo '", "extension": ".pdf"},headers=newHeaders)
print("Status code: ", response.status_code)
response_Json = response.json()
print("Printing Post JSON data")
print(response_Json['data'])
print("Content-Type is ", response_Json['headers']['Content-Type'])
0
Julie M 30 lipiec 2020, 02:01

1 odpowiedź

Najlepsza odpowiedź

Twój adres URL jest nie tak i nie powinien mieć końca /POST, ale oprócz tego, musisz w rzeczywistości baza64 kodować test-1.pdf (jest to, co polecenie Shell, który działa {{X2} } to robi).

Możesz użyć tego (w połączeniu z kodem w pytaniu), aby umieścić poprawną wartość w słowniku parametrów.

import base64

#...
b64 = base64.b64encode(open("test-1.pdf", "rb").read()).decode()
response = requests.post(url,
                         json={"data": b64,
                               "extension": ".pdf"},
                         headers=newHeaders)
3
alani 30 lipiec 2020, 00:00