我正在开发一个android studio项目,尝试在排球库中发出发布请求时遇到了一些问题。我已经用邮递员测试了我的API,并且一切正常,所以问题出在客户端。
我已经在我的android清单中添加了Internet权限:
<uses-permission android:name="android.permission.INTERNET"/>
这是我的代码,我创建了一个名为“登录”的函数,该函数接收两个参数,这些参数是我想通过post方法发送的数据:
private void login(final String email, final String password){
final String url = "http://192.168.100.2:8000/login_facebook_app";
RequestQueue requestQueue = Volley.newRequestQueue(this);
StringRequest postRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(getBaseContext(), response, Toast.LENGTH_SHORT).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getBaseContext(), error.toString(), Toast.LENGTH_SHORT).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("email", email);
params.put("password", password);
return params;
}
};
postRequest.setRetryPolicy(new DefaultRetryPolicy(
15000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
requestQueue.add(postRequest);
}
我在点击事件登录按钮上调用了该函数,但是当我单击该按钮时,我得到了
com.android.volley.timeoutError
我已经阅读了许多解决方案,并且我发现超时问题是由于在本地主机上运行API时防火墙出现了问题。 但是当我禁用防火墙时,会抛出另一个错误:
com.android.volley.NoConnectionError:java.net.ConnectionException: failed to connect to /192.168.100.2(port 8000) after 2500ms:isConnected failed: ECONNREFUSED(Connection refused)
我在这里尝试了许多解决方案,但是我的应用无法正常工作。请帮我xD
答案 0 :(得分:0)
我找到了解决连通性问题的方法;我一直试图通过手机访问我的手机通过计算机连接到IP的url,该URL在我的计算机上的本地主机中运行,尽管这对我不起作用,因为请求在到达服务器,所以我尝试了另一种方法,这是从您的设备访问计算机中运行的localhost URL的答案: