Php 获取并评估Jenkins的卷曲反应
我正在尝试获取Jenkins中带有curl的Http post的响应,我有以下脚本:Php 获取并评估Jenkins的卷曲反应,php,json,bash,curl,jenkins,Php,Json,Bash,Curl,Jenkins,我正在尝试获取Jenkins中带有curl的Http post的响应,我有以下脚本: curl-X POST-k-H“Accept:application/json”-H“Content Type:application/json”-data binary“@/var/lib/jenkins/workspace/Folder/sessions.json” 如您所见,我正在向file.php发送一个json文件,然后调用一些函数并返回一个特定的结果 有了这个脚本,我得到了我想要的结果,但是我想评估
curl-X POST-k-H“Accept:application/json”-H“Content Type:application/json”-data binary“@/var/lib/jenkins/workspace/Folder/sessions.json”
如您所见,我正在向file.php发送一个json文件,然后调用一些函数并返回一个特定的结果
有了这个脚本,我得到了我想要的结果,但是我想评估这个结果,比如说结果是“OK”,然后我想把结果分配给一个变量,然后说如果$result==“OK”,那么做这个否则做那个。我怎么能做到呢,我试过这样的方法:
if $response == "true" then exit 1 fi
但这似乎行不通,有人知道怎么做吗
他们把它标记为与这个问题相似
,但我不知道如何,因为我不是在谈论php代码、bash代码,我想将curl结果存储在一个变量中
提前感谢 如果您只需要检查请求是否成功,就可以检查状态代码:
status=$(curl --write-out '%{http_code}' \
-s -o /dev/null \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
--data-binary "@/var/lib/jenkins/workspace/Folder/sessions.json" \
"http://mypage/Data/file.php")
if [ "$status" == "200" ]; then
echo "request was successful"
else
echo "error status : $status"
fi
与:
:输出状态代码--写出“{http\u code}”
:不输出正文-o/dev/null
:不显示连接日志-s
Accept:application/json
,您希望得到一个json格式的响应,因此可以使用json解析器对其进行解析:
如果回答是:
{ "status": true }
然后您可以执行以下操作:
status=$(curl -s -H "Accept: application/json" \
-H "Content-Type: application/json" \
--data-binary "@/var/lib/jenkins/workspace/Folder/sessions.json" \
"http://mypage/Data/file.php" | jq -r '.status')
if [ "$status" == "true" ]; then
echo "request was successful"
else
echo "error status : $status"
fi
如果响应不是JSON格式,并且响应是OK
:
status=$(curl -s -H "Content-Type: application/json" \
--data-binary "@/var/lib/jenkins/workspace/Folder/sessions.json" \
"http://mypage/Data/file.php")
if [ "$status" == "OK" ]; then
echo "request was successful"
else
echo "error status : $status"
fi
正是我要找的!非常感谢。