2013-10-23 77 views
7

對於知道針對特定發佈請求返回文件的webapi,使用curl(在瀏覽器中運行該瀏覽器會觸發瀏覽器彈出「保存文件」對話框)。我的意圖是將響應字節寫入文件。我使用以下命令將響應正文保存爲捲曲請求的文件

curl -k -i -u username:password -X POST -H "Content-Type:application/json" -d @c:\\curl\\request_body_file.json -o config.cfg https://127.0.0.1:8000/myapi/trigger/export 

但是,這也導致響應頭被寫入輸出文件,這不是我的願望。我只需要保存響應內容。

這是輸出文件的樣子:

TTP/1.1 200 OK 
Content-Length: 12042 
Content-Type: application/octet-stream; charset=UTF-8 
Content-Disposition: attachment; filename=my_export 
Date: Wed, 23 Oct 2013 09:30:47 GMT 
Accept-Ranges: bytes 
Server: Restlet-Framework/2.1.2 
X-Auth-Token: Token ODVhMzk3OWY1NjcwMjg2ZGM0MDhmNTEzYTYwZmE4M2JhNTM1YmE0Yw== 

xÚíÝÛãX~ØqÍÎŽçvfvervrevtrbyewd3334444 ................................ 

如何將curl命令的外觀,以才達到什麼先前所描述的我。

由於

回答

10

從捲曲文檔:

-i,--include

(HTTP)在輸出中包含的HTTP標頭。在HTTP標頭包括諸如服務器名稱,文件日期,HTTP版本和更多...

所以刪除-i PARAM

http://curl.haxx.se/docs/manpage.html

+0

是的,這個伎倆。非常感謝 ! –

6

你可以輸出簡單地追加到一個文件

curl ... >> output-file.html 
+0

你不明白這個問題,它已經被寫入文件。問題在於HTTP頭被包含在內。另外,如果您確實想寫入文件,則應該使用捲曲選項-o和-O,而不是>> – CamW

+0

此外,輸出可能包含來自「-w」開關的輸出,最好是使用特殊如上所述切換它 –