[英]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.