cURL发送JSON和PDF文件

时间:2017-06-07 10:12:31

标签: python json pdf curl flask

我有这个cURL命令与我的API说话:

curl -i -H "Content-Type: application/json" -X POST -d '{"sid":"01234567","text":"TEST","tlf":"123456","ctc":"123456","opr":"XYZ","fbm":"email@email.com","flag":"XYZ","product":"XYZ"}' http://XXX.XXX.XXX.XXX:8080/todo/api/v1.0/tasks

哪种方法很完美,这里是回复:

HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 24
Server: Werkzeug/0.11.3 Python/2.6.6
Date: Wed, 07 Jun 2017 10:03:00 GMT

现在我想在同一个命令中发送一个pdf文件。

我想我添加:

"file":"/var/www/html/olotool/API/attachments/pdf-test.pdf"

最后但它被保存为字符串而不是文档。

如何在一个命令中添加它?

更新:

"file":"$(base64 ~/attachments/pdf-test.pdf)"

将结果更改为<type 'file'>它还是一个字符串,但至少它的内容不是(base64 ~/attachments/pdf-test.pdf)

2 个答案:

答案 0 :(得分:3)

以下是答案:

curl -i -F data='{"sid":"0123456","text":"TEST","tlf":"13245679","ctc":"123456","opr":"XXX","fbm":"mail@mail.com","flag":"XYZ","product":"XYZ"}' -F 'file=@/var/www/html/olotool/API/testpdf/test.pdf' http://XXX.XXX.XXX.XXX:8080/todo/api/v1.0/tasks

在API而不是request.json上使用request.form,然后使用datajson.loads(data)转换为json。

对于该文件,您需要使用request.file['files']并且如果要使用file.read().encode("base64")

答案 1 :(得分:-2)

curl -X GET --header“ Accept:application / json”“ https://wsmipres.sispro.gov.co/WSMIPRESNOPBS/api/PrescripcionPaciente/900204617/2020-06-19/C68A900A-9FB9-46CB- B24B-4AB56E078600 / CC / 1098798857“