簡體   English   中英

如何在 CURL shell 腳本中捕獲超時/錯誤?

[英]How to catch timeout/errors in a CURL shell script?

我想向 URL 發出 cURL GET 請求,並根據返回的 HTTP 代碼決定是否對返回的 HTTP 數據執行某些操作。

例如,如果通過 cURL 請求某個 url 的 HTTP 代碼是有效的(未超時或錯誤),則將請求返回的數據保存在我系統的某個位置。

我如何才能真正“捕獲”返回的 HTTP 代碼(或超時)並據此做出決定?

作為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進行進一步處理。

如果您嘗試將 http 響應存儲到變量中。

#!bin/bash

STATUS_RECEIVED=$(curl -s --write-out "%{http_code}\n" $envUrl --output output.txt --silent) ;

echo $STATUS_RECEIVED

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM