JSON が開発中プログラムから正しく送信されているかどうか確かめたいですの!
条件や作りたいもの
- https://oki2a24.com に JSON 受け取り用の PHP を作って置く。
- PHP ファイル名は recieveJson.php
- 受け取った JSON は見やすい形に整形(デコード)してファイルに書き込む。
- JSON の内容を書き込むファイル名は recieved_json.txt とする。
JSON を受け取ってファイル出力するだけの簡単な PHP プログラム
エディタで直に作成してしまいますわ♪
mkdir test cd test vim recieveJson.php
内容は次のようになりますの♪
<?php $json_string = file_get_contents('php://input'); ob_start(); var_dump(json_decode($json_string)); $out = ob_get_contents(); ob_end_clean(); file_put_contents('recieved_json.txt', $out); // レスポンス header 関数無くてもレスポンスできたが、Volley だからなのかどうかは不明 //header("HTTP/1.1 200 OK"); //header("Status: 200"); //header("Content-Type: application/json; charset=utf-8"); //header('X-Content-Type-Options: nosniff'); $response = array('response' => 'OK'); echo json_encode($response);
「$json_string = file_get_contents(‘php://input’);」で JSON を受け取って変数に代入しております。簡単ですけれども、知らなければこんなに簡単には行きませんわね!
ファイルの作成がおわりましたら、ディレクトリとファイルの所有者をウェブサーバに変更致します。
cd .. chown -R nginx:nginx test/
こちらのページの方法をそのまま使わせていただきました。時間の節約になりましたし、なぜこのコードで取得できるのかの解説もあり大変勉強になりました♪見つけられて良かったですの。ありがとう存じます!
ファイルへの出力は、こちらの PHP 公式サイトから勉強させていただきました。
作成した PHP が正しいかを確認するコマンド
curl -X POST -d '{ "total":"8", "page":"1", "records":"8", "rows":[{ "id":"1001", "cell":["1001","オペレータ1001","オペレータ1001","1001","1001","0","2012-07-26 14:07:21"] }] }' https://oki2a24.com/test/recieveJson.php
- curl -X リクエストメソッド -d データ ウェブページ
- curl サーバから、あるいはサーバへ、データ伝送を行うツール
- -X HTTP サーバとの通信の際に用いる独自のリクエストメソッドを指定
- -d 指定したデータを POST リクエストとして HTTP サーバに送信
最初は JSON を POST する HTML の作成を検討して調査しておりました。けれども、手間がかかりそうでなんとかならないものかしら、と感じはじめてしばらくたったとある瞬間!
あら?コマンドできっと POST できますわね、と思い当たって次のページに辿り着きました。奇しくもPHP を参考にさせていただいたのと同じサイトですの!興味が沸き、思わず時間を費やしてサイトを巡回させていただきましたの。素敵なサイトと感じましたわ♪
なお、curl コマンドについて、もっと知りたい場合はこちらのサイトがよさそうですわ。
ちなみに、JSON データサンプルは、こちらのサイトから拝借いたしました。「JSON サンプルデータ」などで検索した結果ですの。
おわりに
Android アプリを作っております。Androidネットワークプログラミング用ライブラリである Volley(詳しい解説)から JSON をとある URL に POST したいのですの♪
- POST 先の PHP に JSON データが届いたか確認したい。
- JSON データを表示するなどして内容も確認したい。
- その PHP から Response は返さなくていい。←一応レスポンスもプログラム最後に記述したけれども。
つまり、JSON を POST するプログラムが正しいかどうか、書き方はあっているのかどうか、サンプルとして手っ取り早く確かめたい、そんな要望ですの。
本投稿で、確認方法を得ることができました。あとは、Android アプリからネットワーク通信のコードを書くだけですの♪
書きました!
以上です。