Android通过post方法向服务器发送大型JSON对象

时间:2017-06-26 11:19:14

标签: php android json

我们正在尝试使用以下代码从Android应用程序向服务器发送一个大型JSON对象(具有100多个键值对)。

            URL url = new URL(urlString);
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
           JSONObject dt =  new JSONObject();
            try {
                dt.put("test", "test");
            } catch (JSONException e) {
                e.printStackTrace();
            }

            urlConnection.setDoOutput(true);
            // is output buffer writter
            urlConnection.setRequestMethod("POST");
            urlConnection.setRequestProperty("Content-Type", "application/json");
            urlConnection.setRequestProperty("Accept", "application/json");
//set headers and method
            Writer writer = new BufferedWriter(new OutputStreamWriter(urlConnection.getOutputStream(), "UTF-8"));
            writer.write(String.valueOf(dt));
// json data
            writer.close();

在服务器端PHP,

 $data = json_decode(file_get_contents('php://input'));
 echo (string) $data;

但它返回空白值,我们如何将JSON对象从android app传递给服务器?

编辑:我们无法按file_get_contents('php://input')解析原始数据{"test1":1234567890,"test2":"test"},但使用json_decode时会返回空白值。我们还尝试使用UTF-8编码格式返回数据,该格式以原始格式将数据发送为%7B%22test1%22%3A1234567890%2C%22test2%22%3A%22test%22%7D,但也无法解码。 BTW,json_last_error()返回4.

0 个答案:

没有答案