私はこの質問を投稿する前に多くを見ていましたので、別の投稿にありましたら謝罪します。PHPを使用してJSON POSTを読む
ポスト値を取得してJSONエンコードされた配列を返す必要がある、私が作成した本当にシンプルなWebサービスがあります。それは、アプリケーション/ jsonのコンテンツタイプを持つフォームデータを投稿する必要があると言われるまで、すべてうまくいきました。それ以来、私はWebサービスからどのような値も返すことができません。それは間違いなく、投稿値をどのようにフィルタリングしているのかとは関係ありません。 (私は機能の一部を取り除かれている)私はこれを持っているWebサービスで
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data))
);
curl_setopt($curl, CURLOPT_URL, 'http://webservice.local/'); // Set the url path we want to call
$result = curl_exec($curl);
//see the results
$json=json_decode($result,true);
curl_close($curl);
print_r($json);
- -
<?php
header('Content-type: application/json');
/* connect to the db */
$link = mysql_connect('localhost','root','root') or die('Cannot connect to the DB');
mysql_select_db('webservice',$link) or die('Cannot select the DB');
if(isset($_POST['action']) && $_POST['action'] == 'login') {
$statusCode = array('statusCode'=>1, 'statusDescription'=>'Login Process - Fail');
$posts[] = array('status'=>$statusCode);
header('Content-type: application/json');
echo json_encode($posts);
/* disconnect from the db */
}
@mysql_close($link);
?>
を基本的に私の地元のセットアップで、私は以下のことを行い、テストページを作成している
基本的には、$ _POSTの値が設定されていないためですが、$ _POSTの代わりに配置する必要があるものは見つかりません。私は json_decode($ _ POST)、file_get_contents( "php:// input")など数多くの方法を試しましたが、暗闇の中で何度も撮影していました。
ご協力いただければ幸いです。私はポストをエコーする際の助けを
おかげで、スティーブ
おかげでマイケルは、それが前進明確なステップだった私は今、少なくともそれがnullの場合でも
が更新.... repsonseを持っていますCURL -
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_URL, 'http://webservice.local/');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
データはに投稿されたページの
更新PHP -
$inputJSON = file_get_contents('php://input');
$input= json_decode($inputJSON, TRUE); //convert JSON into array
print_r(json_encode($input));
少なくとも私は空白のページを返す前に応答を見るようになった。
エラーが何であるかはわかりませんが、最初のステップでは、$ _POSTの内容をトレンチアウトして内容を確認します。データがあれば、それを処理するのはかなり簡単です。 $ _POSTが空の場合は、少なくとも問題がどこにあるかを知っています。 – Sylverdrag
それは私のために働く! – jruzafa