从 Android 到服务器的 Http post 应用程序不起作用

Http post to server from Android app does not work

我有一个 Android 应用程序可以将 http post 发送到远程服务器:

 protected Void doInBackground(Void... params) {
        // Get the message from the intent
        Intent intent = getIntent();
        String message = intent.getStringExtra(MapsActivity.EXTRA_MESSAGE);
        double longitude = intent.getDoubleExtra(MapsActivity.EXTRA_LONGITUDE, 0.0);
        double latitude = intent.getDoubleExtra(MapsActivity.EXTRA_LATITUDE, 0.0);
        Log.d("doInBackground", message);
        Log.d("doInBackground", String.valueOf(longitude));
        Log.d("doInBackground", String.valueOf(latitude));
        URL url = null;
        HttpURLConnection client = null;
        try {
            // Establish http connection
            url = new URL("http://******.com/");
            client = (HttpURLConnection) url.openConnection();
            client.setDoOutput(true);
            client.setDoInput(true);
            client.setRequestMethod("POST");
            client.connect();
            OutputStreamWriter writer = new OutputStreamWriter(client.getOutputStream());
            String output;
            output = URLEncoder.encode("message", "UTF-8")
                    + "=" + URLEncoder.encode(message, "UTF-8");

            output += "&" + URLEncoder.encode("longitude", "UTF-8") + "="
                    + URLEncoder.encode(String.valueOf(longitude), "UTF-8");

            output += "&" + URLEncoder.encode("latitude", "UTF-8") + "="
                    + URLEncoder.encode(String.valueOf(latitude), "UTF-8");
            Log.d("doInBackground(output)", output);
            Log.d("doInBackground(code)", String.valueOf(client.getResponseCode()));  // Return 200
            writer.write(output);
            writer.flush();
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            client.disconnect();
        }
        return null;
    }

在服务器中,我有:

    <?php
      $m = urldecode($_POST['message']);
      $long = urldecode($_POST['longitude']);
      $lat = urldecode($_POST['latitude']);
      print " ==== POST DATA =====
      Message  : $m
      Longitude : $long
      Latitude  : $lat"; 
?>

client.getResponseCode() returns 200,我认为这意味着我连接成功了?但是该网站仍然没有任何显示。什么可能导致问题? 我得到了

E/GMPM: getGoogleAppId failed with status: 10
E/GMPM: Uploading is not possible. App measurement disabled

这可能是问题所在吗?

网站什么都不显示是什么意思?当你重新加载网站时你看不到打印,因为你没有将它保存在任何地方,你只是打印出那个单一请求的值。要调试,您可以将 post 参数写入文件,而不是查看它们是否通过,或者更好的是在 android 端记录返回的对象。