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

Php Android通过post方法向服务器发送大型JSON对象,php,android,json,Php,Android,Json,我们正在尝试使用以下代码从android应用程序向服务器发送一个大型JSON对象(包含100多个键值对) URL url = new URL(urlString); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); JSONObject dt = new JSONObject(); try {

我们正在尝试使用以下代码从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应用程序传递到服务器


编辑:我们可以通过
文件获取内容('php://input“)
作为
{“test1”:1234567890,“test2”:“test”}
但使用
json_decode
时返回空值。我们还尝试使用
UTF-8
编码格式返回数据,该格式以原始格式发送数据,即
%7B%22test1%22%3A1234567890%2C%22test2%22%3A%22test%22%7D
,但它也无法解码。顺便说一句,
json\u last\u error()
返回4。

您使用的是什么版本的PHP?有关v5.6之前的限制,请参阅。为什么不使用$\u POST超全局变量来接收数据?还要确保post_max_size足够高,请参阅:我们使用的是PHP5.4.45,我们尝试了
$\u post
也返回NULL。您正在解码一个php
stdClass
,它不能转换为字符串。您的php可能在
echo
行失败。还尝试了
$data=$\u POST['test'];回波数据但返回NULL。错误4表示JSON\u错误\u语法,因此JSON对象似乎有问题。如果我将您的json对象和POST一起发送到一个php文件,然后像这样读取它,那么它对我很有用。您的第二种格式是url编码的,因此您必须首先对其进行解码<代码>$input=文件\u获取\u内容('php://input'); $obj=json_解码($input);var_dump($obj)$编码=“%7B%22test1%22%3A1234567890%2C%22test2%22%3A%22test%22%7D”$decoded=urldecode($encoded);var_dump(json_decode($decode))