捕获curl标头和环境变量中的响应

时间:2014-06-04 02:57:42

标签: bash curl response

如果我像这样运行curl命令:

curl -i -H "Content-type: application/json" -X POST -d $JSON $URL
在stdout中

我得到了标题和响应。但如果我尝试使用

捕获它们
foo=$(curl -i -H "Content-type: application/json" -X POST -d $JSON $URL)
echo $foo

这只打印响应,没有标题。是否也可以在同一个环境变量中捕获标题?

2 个答案:

答案 0 :(得分:2)

我也有这个问题,这是一个严重的头部刮擦。我通过管道到tr并删除\r字符来解决它:

foo=$(curl -i -H "Content-type: application/json" -X POST -d $JSON $URL | tr -d '\r')
echo $foo

答案 1 :(得分:1)

在变量周围加上引号。

$ foo=$(curl -i -H "Content-type: application/json" -X POST -d $JSON $URL)
$ echo "$foo"
HTTP/1.1 100 Continue

HTTP/1.1 200 OK
Date: Thu, 09 Jan 2020 16:38:16 GMT
Content-Length: 0