Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取并评估Jenkins的卷曲反应_Php_Json_Bash_Curl_Jenkins - Fatal编程技术网

Php 获取并评估Jenkins的卷曲反应

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文件,然后调用一些函数并返回一个特定的结果 有了这个脚本,我得到了我想要的结果,但是我想评估

我正在尝试获取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文件,然后调用一些函数并返回一个特定的结果

有了这个脚本,我得到了我想要的结果,但是我想评估这个结果,比如说结果是“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

正是我要找的!非常感谢。