我有一个Android应用程序,它向REST服务(ASP.NET MVC)请求JSON对象。我正在使用Volley来做这件事。
执行此操作的代码:
RequestQueue requestQueue = Volley.newRequestQueue(getActivity().getApplicationContext());
JsonObjectRequest request = new JsonObjectRequest (
Request.Method.GET,
"http://192.168.1.253:8090/MyController/MyAction?myParameter=5B1C084B-EFE1-4292-BAF4-A2C30126171D",
null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Toast.makeText(getActivity(), "OK!" + response.toString(), Toast.LENGTH_SHORT).show();
mProgressDialog.dismiss();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (error.networkResponse != null) {
Toast.makeText(getActivity(), "Error Response code: " + error.networkResponse.statusCode, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getActivity(), "Error: " + error.toString(), Toast.LENGTH_SHORT).show();
}
mProgressDialog.dismiss();
}
});
requestQueue.add(request);
mProgressDialog = ProgressDialog.show(getActivity(), "My App", "Searching");
当我调试时,错误是TimeoutError
实例。
现在,当我从JsonObjectRequest
切换到StringRequest
时,请求正常,并按预期返回JSON字符串。
服务返回的json是:
[{"Id":"0f376a18-f311-4bc3-b236-a2c3012bbbe1","Name":"HiAll","Route":[{"Order":0,"Latitude":24.207535461007971,"Longitude":65.26852548122406,"Stop":false,"Flag":true},{"Order":1,"Latitude":24.208240008486147,"Longitude":65.26927649974823,"Stop":true,"Flag":true},{"Order":2,"Latitude":24.209531668746457,"Longitude":65.270671248435974,"Stop":false,"Flag":true}]}]
我错过了什么吗?