2017-06-16 123 views
0

我一直在与詹金斯,现在林卡住,当我尝试使用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”不是从我的詹金斯卷曲得到任何东西,你能帮助我总是得到一个错误?

在此先感谢!

回答

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头添加到您的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` 
+0

谢谢soooooo了,这正是我需要的! – popquinto