通过Http Post curl发送json文件

时间:2017-06-16 18:01:13

标签: php json curl jenkins http-post

我一直在和Jenkins一起工作,现在我陷入困境,当我尝试使用curl创建一个HTTP Post时,我发送一个json文件到我页面中等待它的文件,然后执行一些功能,我正在使用的代码如下:

curl -X POST -k -i -H"接受:application / json" -w"%{body}" -w"%{http_code}" -d" @ / var / lib / jenkins / workspace / myFolder / session.json" http://mypage.com/myFolder/newfile.php

但显然我没有正确发送文件的数据,newfile.php有这样的东西:

echo $ _REQUEST [' sessionId'];

但是当我尝试回显索引sessionId时总是会出错,我的意思是我的文件" newfile.php"我的jenkins卷曲没有得到任何东西,你能帮助我吗?

提前致谢!!

1 个答案:

答案 0 :(得分:0)

您发送的JSON位于请求正文中。键/值在$_REQUEST数组中不可用,因此您收到错误的原因。您需要访问请求正文才能获取sessionId属性。

$requestBody = file_get_contents('php://input');
$session = json_decode($requestBody);
$sesionId = $session["sessionId"];
echo "Session ID: $sessionId";

file_get_contents('php://input')返回POST请求的正文。

请务必在帖子请求中添加相应的Content-Type标头:

curl -X POST -k -i -H "Accept: application/json" -H "Content-Type: application/json" -w "%{body}" -w "%{http_code}" -d "@/var/lib/jenkins/workspace/myFolder/session.json" http://mypage.com/myFolder/newfile.php`