我尝试使用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
答案 0 :(得分:2)
这不是您的问题,这是服务器端问题,服务器不会向您返回有效json
。它实际上返回了你的html
代码,以便查看它返回的确切内容,只为安装添加broswer,例如RESTClient
mozilla
,并通过相应的类型将您的请求发送到服务器(post -get -...)然后查看服务器结果。