错误Volley库com.android.volley.ParseError:org.json.JSONException: [英] ERROR Volley Library com.android.volley.ParseError: org.json.JSONException:
问题描述
我尝试使用Volley Library发出PUT请求.我已经确实获得了请求并使用覆盖方法 getParam()发出了请求,但是对于此请求,我需要发送我之前创建的jsonOjbect.
I try to do a PUT request using Volley Library. I already did get request and put request usin g Override methode getParam(), but for this request i need to send a jsonOjbect that i created before.
但是在回应中我有:
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():
and this is the JSONObject.toString() that i send :
{
"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
}
我希望您能为我提供帮助=)
i hope that you will can help me =)
这是我的完整堆栈跟踪,我们只能看到连接,而没有什么很重要的...
EDIT 1 : This is my full stack trace , we can see just the connection , and nothing of very important...
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
代码,以查看其返回的确切内容,只需为浏览器安装add on,例如为 mozilla
添加 RESTClient
并将其发送给您通过相应的类型(post-get -...)向服务器请求,然后查看服务器结果.
This is not your problem this is server side problem, the server dose not return valid json
to you. it actually returns you html
code, in order to see what exactly it returns just install add on for broswer for example RESTClient
for mozilla
and send your request to the server by corresponding type(post-get-...) then see server result.
这篇关于错误Volley库com.android.volley.ParseError:org.json.JSONException:的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!