从curl请求中将响应体保存到文件

22

我正在使用curl针对一个WebAPI进行操作,该WebAPI知道如何为特定的POST请求返回文件(在浏览器中运行此操作会触发浏览器弹出“保存文件”对话框)。我的意图是将响应字节写入文件。 我使用以下命令:

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命令应该是什么样子。

谢谢。

2个回答

21

从curl文档中得知:

-i,--include

(HTTP)包括HTTP头并输出。HTTP头包含服务器名称、文档日期、HTTP版本等信息...

因此去除-i参数。

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


20
你可以将输出信息简单地添加到一个文件中。
curl ... >> output-file.html

3
你没有理解这个问题,它已经被写入文件了。问题在于HTTP头被包含在内。而且,如果你想要写入文件,你应该使用curl选项-o和-O,而不是>>。 - CamW
输出可能包含“-w”开关的输出,最好是使用专门的开关进行控制,如上所述。 - Asaf Mesika
你能解释一下双角括号吗?一个单独的 > 似乎也可以正常工作... - Sinjai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接