java - 错误 Volley 库 com.android.volley.ParseError : org. json.JSONException:

标签 java android json request android-volley

我尝试使用 Volley 库发出 PUT 请求。我已经使用 g Override 方法 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

最佳答案

这不是你的问题,这是服务器端的问题,服务器没有返回有效的 json 给你。它实际上返回给您 html 代码,为了查看它返回的确切内容,只需为浏览器安装插件,例如 mozillaRESTClient 并发送您的通过相应类型(post-get-...)向服务器请求,然后查看服务器结果。

关于java - 错误 Volley 库 com.android.volley.ParseError : org. json.JSONException:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25483379/

相关文章:

java - 接收 JSON 响应 (android)

java - java中使用RC4加密图像

java - Spring Boot + JAX-WS 无需额外的 servlet?

java - 使用 Java FTP 连接到本地主机

android - 修复抽屉导航标题更改方向更改?

java - 显示启动画面直到应用加载完成

PHP 显示 json 结果的问题

Java为什么 "readAllBytes"和 "readNBytes"方法不同步?

android - 如何使用导航架构组件创建 BottomSheetDialogFragment?

jQuery $.each 循环