android volley没有收到php json对象

时间:2016-06-16 22:14:25

标签: json android-volley

我正在使用android volley发送请求到服务器端,另一方面在服务器端我使用php。 这是我的android代码从服务器接收响应(无论params是什么,因为我在服务器端不需要params!):

        JsonObjectRequest req = new JsonObjectRequest(URL, new JSONObject(params),
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        Log.d("ATA d Response", response.toString());
                        VolleyLog.v("ATA Response:%n %s", response.toString(4));
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("ATA Response", " RESPONSE ERROR");
            VolleyLog.e("Error: ", error.getMessage());
        }
    });

    req.setShouldCache(false);
    queue.getCache().clear();
    queue.add(req);

现在,当在服务器端我回复时会出现如下响应:

if( isset($_POST)) {    
    echo json_encode(array("x"=>"y", "m"=>"n"));
    exit();
}

每一个都没问题,响应就是服务器发送的内容!

但是!当在服务器端时,我返回作为这样的响应:

if( isset($_POST)) {    
    echo json_encode(array(array("0"=>"1"),array("2"=>"3"),array("4"=>"5")));
    exit();
}

响应不正常并收到此错误:

06-17 02:28:53.456  D/Volley: [1296] BasicNetwork.logSlowRequests: HTTP response for request=<[ ] MY_URL 0xa64d9c1b NORMAL 1> [lifetime=3645], [size=60], [rc=200], [retryCount=0]

06-17 02:28:53.466  D/ATA Response:  RESPONSE ERROR

06-17 02:28:53.466  E/Volley: [1] 2.onErrorResponse: Error: 

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

尝试发送内容类型标头。 application/json应该完成这项工作。

header("Content-type:application/json");

在产生任何输出之前发送标题(即在echo语句之前)。