0 レビュー
3 回答
php-Androidからコンピューティングエンジンサーバーに送信されたJSONがnullを返す
AndroidアプリからサーバーにJSONオブジェクトを送信しています。私の開発ローカルマシンでは、正常に動作します。データを取得してデコードします。しかし、サーバーをコンピューティングエンジンにデプロイしたとき、サーバー側でデータを受信しません。データはAndroidクライアントから送信されます。また、ブラウザーからJSONをテストしたところ、200の応答コードが返されました。コードスニペットは次のとおりです。
//クライアント
//ここでJSONObjectを作成します これは私が送信しているJSONです{"test"、 "1234"}
JSONObject json = new JSONObject();
json.put("test", args[0]);
String postData=json.toString();
// Send POST output.
OutputStreamWriter os = new OutputStreamWriter(urlConn.getOutputStream(), "UTF-8");
os.write(postData);
Log.e("NOTIFICATION", "Sent");
os.close();
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
String msg="";
String line = "";
while ((line = reader.readLine()) != null) {
msg += line;
}
Log.i("msg=",""+msg);
//サーバー
<?php
$json = file_get_contents("php://input");
var_dump($json); //this returns String(0)
$decoded = json_decode($json, TRUE);
$pasid = $decoded['test'];
echo"test if it works";
var_dump($pasid); //returns null
Androidアプリは文字列を送信しますが、サーバー側では空の文字列を取得しています。今のところ理由がわかりません。
わからない
0
レビュー
答え :
解決策:
コードが非常にわかりにくい これは、アプリからリモートデータベースにデータを送信するための良い方法ではありません あなたはこのようにすることができます`
アプリを作成する
String uri="But your http URL";
URL url = new URL(uri);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
OutputStreamWriter writer=new OutputStreamWriter(con.getOutputStream());
StringBuilder sb=new StringBuilder();
sb.append("username="+"Naham");
sb.append("password="+"passNaham");
writer.write(sb.toString());
writer.flush();
簡単なphpWebサービスを知っている
$ data = array( "result" => 0、 "message" => "Error!"); if($ _SERVER ['REQUEST_METHOD'] == "POST"){ $ user_name = isset($ _ POST ['username'])? $ _POST ['user_name']: ""; $ user_password = isset($ _ POST ['user_password'])? $ _POST ['user_password']: ""; //ここで何かをします $ data = array( "result" => 1、 "message" => "welcome"); } そうしないと $ data = array( "result" => 0、 "message" => "Error!"); /*出力ヘッダー*/ header('Content-type:application / json'); echo json_encode($ data); ?>
わからない
0
レビュー
答え :
解決策:
サーバーに投稿リクエストを送信した後、次のコードで投稿本文を取得できます:
<?php
$post_body = file_get_contents("php://input");
$json = json_decode($post_body);
$pasid = $json->{"test"};
echo $pasid;
?>
わからない
0
レビュー
答え :
解決策:
問題の原因はHttpRLConnectionであることが判明しました。 このSOの質問で受け入れられた回答と同じように、`
を削除するだけです。urlConnection.setChunkedStreamingMode(0);
どこ `urlConnection = HttpUrlCooenction();
`
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。