我使用curl来获取http报头以查找http状态代码并返回响应。我使用命令获取http头信息
curl -I http://localhost
为了得到响应,我使用命令
curl http://localhost
一旦使用了-I标志,我就只得到了头信息,响应就不再存在了。是否有一种方法可以同时获得http响应和头/http状态码在一个命令?
我使用curl来获取http报头以查找http状态代码并返回响应。我使用命令获取http头信息
curl -I http://localhost
为了得到响应,我使用命令
curl http://localhost
一旦使用了-I标志,我就只得到了头信息,响应就不再存在了。是否有一种方法可以同时获得http响应和头/http状态码在一个命令?
当前回答
仅捕获响应: curl——location——请求GET“http://localhost:8000” 捕获响应和它的状态码: curl——location——request GET "http://localhost:8000" -w "%{http_code}" 在文件中捕获响应: curl——location——request GET "http://localhost:8000" -s -o "response.txt"
其他回答
我用过这个:
request_cmd="$(curl -i -o - --silent -X GET --header 'Accept: application/json' --header 'Authorization: _your_auth_code==' 'https://example.com')"
获取HTTP状态
http_status=$(echo "$request_cmd" | grep HTTP | awk '{print $2}')
echo $http_status
为了获得响应体,我使用了这个
output_response=$(echo "$request_cmd" | grep body)
echo $output_response
一行代码,只是为了获得状态代码:
curl -s -i https://www.google.com | head -1
将其更改为head -2也会给出时间。
如果你想要一个while-true循环,它会是:
URL="https://www.google.com"
while true; do
echo "------"
curl -s -i $URL | head -2
sleep 2;
done
直到您执行cmd+C(或Windows中的ctrl+C)。
------
HTTP/2 200
date: Sun, 07 Feb 2021 20:03:38 GMT
------
HTTP/2 200
date: Sun, 07 Feb 2021 20:03:41 GMT
------
HTTP/2 200
date: Sun, 07 Feb 2021 20:03:43 GMT
------
HTTP/2 200
date: Sun, 07 Feb 2021 20:03:45 GMT
------
HTTP/2 200
date: Sun, 07 Feb 2021 20:03:47 GMT
------
HTTP/2 200
date: Sun, 07 Feb 2021 20:03:49 GMT
在末尾追加一行“http_code:200”,然后grep关键字“http_code:”并提取响应代码。
result=$(curl -w "\nhttp_code:%{http_code}" http://localhost)
echo "result: ${result}" #the curl result with "http_code:" at the end
http_code=$(echo "${result}" | grep 'http_code:' | sed 's/http_code://g')
echo "HTTP_CODE: ${http_code}" #the http response code
在这种情况下,您仍然可以使用非静默模式/ verbose模式来获取有关请求的更多信息,例如curl响应体。
我可以通过查看curl文档来得到一个解决方案,该文档指定使用-来将输出输出到stdout。
curl -o - -I http://localhost
要用http返回代码获得响应,我可以这样做
curl -o /dev/null -s -w "%{http_code}\n" http://localhost
这对我来说很管用:
curl -Uri 'google.com' | select-object StatusCode