我们正在尝试使用以下代码从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.