我准备了一个 Node js Web 服务,当我使用以下 URL 进行测试时,它会返回 JSON 响应:http://localhost:3000/users?name=ali&password=ali ,它成功返回我设置的 JSON 响应,因此我确保它正常工作。 实际上我正在尝试在android中使用这个web服务,所以我尝试使用android中的Volley库获取JSON响应,但我得到:com.android.volley.TimeoutError 这是我的 Android 代码,我正在其中建立连接并发出请求:
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”,并且停用了防火墙
最佳答案
我希望这对你有用。
从真实设备访问 localhost API 时,您的设备必须位于同一网络或 LAN 中。
确保您已在 list 中添加互联网权限。
将 DefaultRetryPolicy
设置为您的请求。
objectRequest.setShouldCache(false);
objectRequest.setRetryPolicy(new DefaultRetryPolicy(30000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
在此 requestQueue.add(objectRequest);
行之前添加以上代码。
关于java - android 截击超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58907257/