我准备了一个返回JSON响应的node js webservice,当我使用URL:http://localhost:3000/users?name=ali&password=ali测试它时,它成功地返回了我设置的JSON响应,所以我确保它工作正常。实际上,我正尝试在安卓系统中使用这个get服务,所以我尝试在安卓系统中使用Volley库来获取JSON响应,但我得到的是: com.android.volley.TimeoutError,这是我的安卓代码,我在其中建立连接并发出请求:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String URL = "http://196.2.182.69:3000/users";
RequestQueue requestQueue = Volley.newRequestQueue(this);
JsonObjectRequest objectRequest = new JsonObjectRequest(
Request.Method.GET,
URL,
null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.e("Rest Response",response.toString());
System.out.println(response.toString());
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Rest Response",error.toString());
}
}
);
requestQueue.add(objectRequest);
}
注意:我用我的ip地址更改了'localhost‘并停用了我的防火墙
发布于 2019-11-18 11:51:22
我希望这对你有用。
从真实设备访问localhost API时,您的设备必须位于同一网络或LAN中。
请确保您已在清单中添加了internet权限。
为您的请求设置DefaultRetryPolicy
。
objectRequest.setShouldCache(false);
objectRequest.setRetryPolicy(new DefaultRetryPolicy(30000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
在此requestQueue.add(objectRequest);
行之前添加上述代码。
https://stackoverflow.com/questions/58907257
复制相似问题