java - volley.NoConnectionError
问题描述
我正在开发一个 Android 应用程序,目前坚持使用 volley 将我的数据库链接到我的应用程序进行注册,但我遇到了问题:这是响应:
com.android.volley.NoConnectionError:java.io.IOEXCEPTION: 不允许到 10.0.2.2 的明文 HTTP 流量
这是我的 MainActivity 代码:
public class MainActivity extends AppCompatActivity {
Button loginBtn;
EditText password, username;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
password = findViewById(R.id.pssword);
username = findViewById(R.id.username);
loginBtn = findViewById(R.id.check);
loginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
login();
}
});
}
void login() {
StringRequest request = new StringRequest(Request.Method.POST,
"http://10.0.2.2:80/android/test.php", new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(getApplicationContext(), "this is response: " + response,
Toast.LENGTH_SHORT).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "this is response: " + error,
Toast.LENGTH_SHORT).show();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("username", "hicham");
params.put("password", "hello");
return params;
}
};
Volley.newRequestQueue(this).add(request);
}
}
解决方案
请相应地在您的 AndroidManifest.xml 中添加 usesCleartextTraffic="true" 标记以解决此问题。
<application
android:usesCleartextTraffic="true"
</application>
出现此问题是因为您尝试访问 http url 而不是 https,并且最近对此有新的限制。因此,只有在添加了我提到的标签之后,您的 HTTP 请求才会起作用。
快乐编码!:)
推荐阅读
- javascript - 换行时更改 html 标签
- django - Django - 在开始加载之前操作 url
- ipfs - IPFS如何存储小文件(小于1KB)
- javascript - 如何在 Angular CLI 组件中添加外部 JS 文件,仅特定于该组件?
- c# - 区分对象是 DateTime 类型还是 Nullable 类型
(约会时间?) - javascript - 关于树视图,是否可以有搜索功能?
- teradata-sql-assistant - 在全外连接 SQL 中将两个子查询列 id 合二为一
- php - 为什么php的$_COOKIE不同步读取cookies?
- python-3.x - 如何使用 python range() 编写相同的代码?
- c++ - boost::empty_init_t 是做什么用的?