JSON, отправленный с Android для вычисления сервера двигателя, возвращает null

Я отправляю объект JSON из моего приложения Android на свой сервер. В моем развитии локальная машина работает нормально. Я получаю данные и декодирую их. Но когда я развернул свой сервер для вычисления движка, я не получаю данные на сервере. Данные отправляются от клиента 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 отправляет строку, но на стороне сервера я получаю пустую строку. Я не могу понять, почему.

ваш код очень запутанный, это не очень хороший способ отправить данные из приложения в удаленную базу данных, вы можете сделать это,

сформировать приложение

 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(); 

Знайте простую веб-службу php


     $ 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");
     } else
         $ data = array ("result" => 0, "message" => "Error!");
     / * Выходной заголовок * /
     header ('Content-type: application / json');
     echo json_encode ($ data);
     ?>


после отправки запроса на сервер вы можете получить сообщение с этими кодами:

 <?php $post_body = file_get_contents("php://input"); $json = json_decode($post_body); $pasid = $json->{"test"}; echo $pasid; ?> 

Оказывается, проблема вызвана HttpRLConnection. Как и принятый ответ в этом вопросе SO, просто удалите `

urlConnection.setChunkedStreamingMode (0);

где `urlConnection = HttpUrlCooenction ();

`