我尝试从Android调用本地服务器上的REST服务,但我得到com.android.Volley.ServerError
。
在Java WebFrontEnd
我有权使用手机访问服务器。而且,http://ipadress:8080/myproject/rest/test可以在移动电话的浏览器上正常运行。
Android功能代码:
public void register ()
{
String url ="http://ipadress:8080/FaceHub/rest/signup";
StringRequest stringRequest =new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(getApplicationContext(),response,Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(),error.toString(),Toast.LENGTH_LONG).show();
}
})
{
@Override
public String getBodyContentType() {
return "application/json;charset=utf-8";
}
@Override
protected Map<String, String> getParams()
{
Map<String, String> params = new HashMap<String, String>();
params.put("name", "testname");
params.put("email", "testmail");
params.put("pass", "testpass");
params.put("phone", "testphone");
params.put("address", "testaddress");
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
requestQueue.add(stringRequest);
}
答案 0 :(得分:2)
只需在request.setShouldCache(false)
之前添加requestQueue.add(stringRequest);
。
默认情况下,volley会将响应保存在其缓存中,这种行为可能会导致一些奇怪的问题。