java - 为什么我的带有 android volley 的 http post 请求会引发错误(localhost)?
问题描述
我正在开发一个 android studio 项目,我在尝试使用 volley 库进行发布请求时遇到了一些问题。我已经用邮递员测试了我的 API 并且一切正常,所以问题出在客户端部分。
我已经在我的 android 清单中添加了互联网权限:
<uses-permission android:name="android.permission.INTERNET"/>
这是我的代码,我创建了一个名为“login”的函数,它接收两个参数,它们是我想通过 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 在 localhost 中运行时,超时问题是由于防火墙问题造成的。但是当我禁用防火墙时,会引发另一个错误:
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
解决方案
我找到了连接问题的解决方案;我一直在尝试通过我的手机和我的计算机都连接的 IP 从我的手机访问在我的计算机上的 localhost 中运行的 url,尽管这对我不起作用,因为请求在到达之前就终止了服务器,所以我尝试了另一种方式,这是从您的设备访问您计算机中运行的 localhost 的 url 的答案:
推荐阅读
- python - 如何将多个特征组合到 KMeans 中
- c++ - 中止(核心转储)从 C++ 中的向量中删除元素
- beautifulsoup - 更改班级会阻止查找
- python - 仅当列的 dtype 为数字时,如何使用 pandas 删除尾随零?
- javascript - 如何使用 jwt 在 React 中正确存储当前用户信息
- shell - 在 shell 脚本中的 if 语句中使用 && 运算符
- javascript - grpc/javascript 中的 SBE 协议支持
- python-sphinx - genindex 和 modindex 页脚链接在 readthedocs.io 中不起作用
- angular-oauth2-oidc - angular-oauth2-oidc :启用静默刷新会在 10 分钟后触发许多调用来获取令牌
- linux - bash 或 zsh 中的 subshell 和 detach 之间的区别?