2017-06-16 7 views
0

私はJenkinsと一緒に作業していましたが、カールを使用してHTTP Postを作成しようとすると固まってしまいました.Jsonファイルを待っているページのファイルに送ります私が使用しているコードは次のようになります:jsonファイルをHttp Postカールで送信する

curl -X POST -k -i -H "accept:application/json" -w "%{body}" -w "%{body} HTTP_CODE}」-d "@は/ var/libに/ジェンキンス/ワークスペース/ MYFOLDER/session.json" http://mypage.com/myFolder/newfile.php

しかし、どうやらImが正しくファイルのデータを送信しない、newfile.phpはこのような何かを持っています

ech o $ _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ヘッダを追加してください:

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

関連する問題