ERROR Volley Library com.android.volley.ParseError:org.json.JSONException:

时间:2014-08-25 09:59:10

标签: java android json request android-volley

我尝试使用Volley Library执行PUT请求。我已经收到了请求并提出了请求,请使用覆盖方法 getParam(),但对于此请求,我需要发送之前创建的jsonOjbect。

但在我的回复中:

08-25 09:44:34.638: I/ViewPdf:  SaveDataToProxy ERROR(8512): 
error: com.android.volley.ParseError: org.json.JSONException: Value <br of type 
java.lang.String cannot be converted to JSONObject

所以这是我的方法连接:

public void SaveDataToProxy(JSONObject jsonObject){

    // Tag used to cancel the request
    String tag_json_obj = "json_obj_req";

    String url = Properties.getUrl_proxy() + ":" + Properties.getPort_proxy() +"/api/points/"+this.id_point;
    Log.i("url",url); 

    final ProgressDialog pDialog = new ProgressDialog(this);
    pDialog.setMessage("Loading...");
    pDialog.show(); 

    JsonObjectRequest jsObjRequest = new JsonObjectRequest
    (
            Request.Method.PUT, url, jsonObject, new Response.Listener<JSONObject>()
            {
                @Override
                public void onResponse(JSONObject response)
                {
                        Log.i(TAG + ":  SaveDataToProxy SUCCESS", "response: " + response);
                }

            }, new Response.ErrorListener() 
            {
                @Override
                public void onErrorResponse(VolleyError error) 
                {
                    Log.i(TAG + ":  SaveDataToProxy ERROR", "error: " + error);
                }
             }
    )

    {
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError 
        {
            HashMap<String, String> headers = new HashMap<String, String>();
            headers.put("Content-type", "application/json");

            return headers;
        }
    };

    AppController.getInstance().addToRequestQueue(jsObjRequest, tag_json_obj); 
}

这是我发送的JSONObject.toString():

{
"depositProduct": [
    null
],
"collectionProduct": [
    null
],
"status": 1,
"end_hour": "04:00:00",
"type": "COLLECTION",
"id": 1,
"collector": "{\"address\":\"14 Rue de la serviellier\",\"city\":\"Germs-sur-l\\u0027oussouet\",\"fax\":\"0380910303\",\"zip_code\":\"65451\",\"transit_date\":\"2014-08-25 00:00:00\",\"name\":\"Jeanjean\",\"tel\":\"0643665316\",\"siret\":\"73282932000074\",\"weight\":0.0,\"volume\":0.0,\"id_erp\":20,\"point_id\":1,\"quantity\":0,\"id\":1}",
"closed_client": false,
"id_erp": 111,
"miscellaneous": "inf test2",
"infos": "test tablette",
"downtime": "2",
"form_type": "cerfa11352_02",
"sequence": 1,
"producer": "{\"address\":\"207 rue charles de gaulle\",\"city\":\"Montbard\",\"email\":\"Dupond.patrick@gmail.com\",\"fax\":\"0380954609\",\"zip_code\":\"21500\",\"id_erp\":\"C10018-1\",\"name\":\"Foyer mutualisteZZ\",\"waste_code\":\"215004\",\"waste_adr\":\"un 3291 Dechet d\\u0027hopital non specifie, NSA, 6.2II\",\"signature\":\"/mnt/sdcard/tour_1/point_1/producer_1.png\",\"siret\":\"73282932000074\",\"tel\":\"0380915454\",\"transit_date\":\"2014-08-25 00:00:00\",\"volume\":0.0,\"weight\":0.0,\"point_id\":1,\"quantity\":0,\"id\":1}",
"no_waste": false,
"factory": "{\"address\":\"Usine d\\u0027incineration les bouillots\",\"city\":\"Bayet\",\"fax\":\"0470456168\",\"zip_code\":\"03500\",\"name\":\"LUCANE\",\"tel\":\"0470454857\",\"siret\":\"97596145524658\",\"signature\":\"/mnt/sdcard/tour_1/point_1/factory_1.png\",\"refusal_support_reason\":\"0\",\"weight\":0.0,\"volume\":0.0,\"point_id\":1,\"operation_type\":0,\"id_erp\":31,\"quantity\":0,\"refusal_support\":0,\"id\":1}",
"id_tour": 1,
"begin_hour": "06:00:00",
"internal_error": false
}

我希望你能帮助我=)

编辑1:这是我的完整堆栈跟踪,我们只能看到连接,而且非常重要...

08-25 10:21:03.106: D/Volley(29845): [195] BasicNetwork.logSlowRequests: HTTP response   for request=<[ ]
 http://192.168.0.60:80/api/points/1 0x6768b5f7 NORMAL 5>
 [lifetime=6891],   [size=7531], [rc=200], [retryCount=1]
08-25 10:21:03.106: I/ViewPdf:  SaveDataToProxy ERROR(29845): error:    com.android.volley.ParseError: org.json.JSONException: Value <br of type java.lang.String   cannot be converted to JSONObject
08-25 10:21:03.106: D/Volley(29845): [1] Request.finish: 6894 ms: [ ]     http://192.168.0.60:80/api/points/1 0x6768b5f7 NORMAL 5

1 个答案:

答案 0 :(得分:2)

这不是您的问题,这是服务器端问题,服务器不会向您返回有效json。它实际上返回了你的html代码,以便查看它返回的确切内容,只为安装添加broswer,例如RESTClient mozilla,并通过相应的类型将您的请求发送到服务器(post -get -...)然后查看服务器结果。