volley.NoConnectionError
volley.NoConnectionError
我正在开发一个 Android 应用程序,目前坚持使用 link 我的数据库到我的应用程序以使用 volley 进行注册,但我遇到了问题:
这是回复:
com.android.volley.NoConnectionError:java.io.IOEXCEPTION: Cleartext HTTP traffic to 10.0.2.2 not permitted
这是我的 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 请求才会起作用。
编码愉快! :)
我正在开发一个 Android 应用程序,目前坚持使用 link 我的数据库到我的应用程序以使用 volley 进行注册,但我遇到了问题: 这是回复:
com.android.volley.NoConnectionError:java.io.IOEXCEPTION: Cleartext HTTP traffic to 10.0.2.2 not permitted
这是我的 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 请求才会起作用。
编码愉快! :)