簡體   English   中英

Bash-如何獲取http響應正文和狀態代碼?

[英]Bash - How to get http response body and status code?

我正在嘗試下面的代碼來獲取響應正文和狀態:

read -ra result <<< $(curl -i --insecure \
    -H "Accept: application/json" \
    -H "Content-Type:application/json" \
    -X POST --data "$configData" $openingNode"/voice/v1/updateWithPh")
status=${result[1]}
response=${result[@]}
echo $status

這里的問題是-

我正確地獲得了狀態代碼和響應正文。 但是,當我創建一個bash函數並將其作為參數發送時,響應主體在函數中將變為“ HTTP / 1.1” ,如下所示。

echo $(validateUpdate $configData $response)

功能代碼-

function validateUpdate(){
   echo $1
   echo $2
}

$ 2打印為“ HTTP / 1.1”

是什么原因? 如何糾正這個問題?

您需要將變量用雙引號引起來,以防止bash將其拆分為單獨的標記。

嘗試

echo $(validateUpdate "$configData" "$response")

甚至更好(@tripleee指出,echo沒用;大括號可以提高可讀性):

validateUpdate "${configData}" "${response}"

在函數中使用相同的東西

echo "$2"

暫無
暫無

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

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