Android with Volley: 无法解析主机
Android with Volley: Unable to resolve host
我正在尝试连接到团队中另一位开发人员为我提供的服务器。我正在使用 Volley,不过还是个初学者。
在服务器上,在 API 文件夹内的用户文件夹中有一个注册方法。我需要能够从我的 android 应用程序调用此方法才能注册新用户。
这是我正在使用的代码。
try {
Request request = new Request(Request.Method.POST, url + "/user/register", new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Response parseNetworkResponse(NetworkResponse response) {
Toast.makeText(getApplicationContext(), "ParseNetworkRequest", Toast.LENGTH_LONG).show();
return null;
}
@Override
protected void deliverResponse(Object response) {
Toast.makeText(getApplicationContext(), "DeliverResponse", Toast.LENGTH_LONG).show();
}
@Override
public int compareTo(Object another) {
return 0;
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
// POST Parameters
params.put("api_key", API_KEY);
params.put("email", etEmail.getText().toString());
params.put("password", etPassword.getText().toString());
params.put("verifyPassword", etConfirmPass.getText().toString());
params.put("firstname", etFirstName.getText().toString());
params.put("lastname", etLastName.getText().toString());
params.put("birthday", birthDate);
return params;
}
};
Volley.newRequestQueue(this).add(request);
我遇到的错误。
com.android.volley.NoConnectionError: java.net.UnknownHostException: Unable to resolve host "<url>": No address associated with hostname
我的 manifest.xml 中的权限因为之前提出的大部分问题都通过添加这行解决了,所以在我的情况下不起作用。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="ANDROID.PERMISSION.ACCESS_NETWORK_STATE" />
请注意,我尝试使用 RequestString class 并且遇到了同样的错误,但是当我尝试使用另一个 url ("http://google.com") 时,我得到了一个服务器错误,这更好一点,因为我们知道原因。
使用不同类型的连接解决了问题,我尝试 运行 使用 3G 的应用程序并且成功了。
我正在尝试连接到团队中另一位开发人员为我提供的服务器。我正在使用 Volley,不过还是个初学者。
在服务器上,在 API 文件夹内的用户文件夹中有一个注册方法。我需要能够从我的 android 应用程序调用此方法才能注册新用户。
这是我正在使用的代码。
try {
Request request = new Request(Request.Method.POST, url + "/user/register", new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Response parseNetworkResponse(NetworkResponse response) {
Toast.makeText(getApplicationContext(), "ParseNetworkRequest", Toast.LENGTH_LONG).show();
return null;
}
@Override
protected void deliverResponse(Object response) {
Toast.makeText(getApplicationContext(), "DeliverResponse", Toast.LENGTH_LONG).show();
}
@Override
public int compareTo(Object another) {
return 0;
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
// POST Parameters
params.put("api_key", API_KEY);
params.put("email", etEmail.getText().toString());
params.put("password", etPassword.getText().toString());
params.put("verifyPassword", etConfirmPass.getText().toString());
params.put("firstname", etFirstName.getText().toString());
params.put("lastname", etLastName.getText().toString());
params.put("birthday", birthDate);
return params;
}
};
Volley.newRequestQueue(this).add(request);
我遇到的错误。
com.android.volley.NoConnectionError: java.net.UnknownHostException: Unable to resolve host "<url>": No address associated with hostname
我的 manifest.xml 中的权限因为之前提出的大部分问题都通过添加这行解决了,所以在我的情况下不起作用。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="ANDROID.PERMISSION.ACCESS_NETWORK_STATE" />
请注意,我尝试使用 RequestString class 并且遇到了同样的错误,但是当我尝试使用另一个 url ("http://google.com") 时,我得到了一个服务器错误,这更好一点,因为我们知道原因。
使用不同类型的连接解决了问题,我尝试 运行 使用 3G 的应用程序并且成功了。