发送JSON文件卷曲
问题描述:
我一直在与詹金斯,现在林卡住,当我尝试使用curl使一个HTTP POST,我送一个JSON文件,在我的页面文件是谁等着呢,然后执行一些功能,我使用的代码如下:发送JSON文件卷曲
curl -X POST -k -i -H“Accept:application/json”-w“%{body}”-w“%{ HTTP_CODE}” -d “@在/ var/lib中/詹金斯/工作区/ MyFolder中/ session.json” http://mypage.com/myFolder/newfile.php
但很显然,我不是发送正确的文件的数据,该newfile.php有这样的事情:
ech $ _REQUEST ['sessionId'];
但是当我尝试呼应指数的sessionId,我的意思是我的文件“newfile.php”不是从我的詹金斯卷曲得到任何东西,你能帮助我总是得到一个错误?
在此先感谢!
答
您发送的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
头添加到您的POST请求:
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`
谢谢soooooo了,这正是我需要的! – popquinto