2017-06-07 105 views
0

我有這樣的捲曲命令我的API說話了:捲曲發送JSON和PDF文件

curl -i -H "Content-Type: application/json" -X POST -d '{"sid":"","text":"TEST","tlf":"123456","ctc":"123456","opr":"XYZ","fbm":"[email protected]","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" 

末,但它被保存爲一個字符串而不是文件。

如何在一個命令中添加此項?

UPDATE:

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

更改結果到<type 'file'>它仍然是一個字符串,但至少它的內容是不(base64 ~/attachments/pdf-test.pdf)

回答

1

下面是答案:

curl -i -F data='{"sid":"","text":"TEST","tlf":"13245679","ctc":"123456","opr":"XXX","fbm":"[email protected]","flag":"XYZ","product":"XYZ"}' -F '[email protected]/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']不要忘記編碼,如PDF的或Word文檔文件爲Base64,如果你想將它們導入到MySQL與file.read().encode("base64")