我想向URL发出cURL GET请求,并根据返回的HTTP代码决定是否对返回的HTTP数据执行某些操作。
例如,如果通过cURL的某个url请求的HTTP代码有效(没有超时或错误),那么请保留我系统中某处的请求返回的数据。
如何实际“捕获”返回的HTTP代码(或超时)并根据该代码做出决定?
答案 0 :(得分:25)
执行以下script.sh http://www.google.com/
-D
- 将标头转储到文件
-o
- 写回复文件
-s
- 保持沉默
-w
- 显示指定变量的值
#!/bin/bash
RESPONSE=response.txt
HEADERS=headers.txt
status=$(curl -s -w %{http_code} $1 -o $RESPONSE)
# or
#curl -s -D $HEADERS $1 -o $RESPONSE
#status=$(cat $HEADERS | head -n 1 | awk '{print $2}')
echo $status
使用$status
和$RESPONSE
进行进一步处理。