我想向 URL 发出 cURL GET 请求,并根据返回的 HTTP 代码决定是否对返回的 HTTP 数据执行某些操作。
例如,如果通过 cURL 的某个 url 请求的 HTTP 代码有效(不是超时或错误),则将请求返回的数据保存在我的系统中的某个位置。
我怎样才能真正“捕获”返回的 HTTP 代码(或超时)并根据它做出决定?
最佳答案
执行以下作为 script.sh http://www.google.com/
。
-D
- 将 header 转储到文件
-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
进行进一步处理。
关于bash - 如何在 CURL shell 脚本中捕获超时/错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18258804/