我知道这个问题已被多次询问过,但这些问题的答案并不适用于我。
我正在尝试访问REST API,但是当我尝试连接时,我收到此错误:
java.lang.IllegalArgumentException: Host name may not be null
我的网址是" http:localhost:3000 / api / v1 / users",
我的代码:
public String post(List<NameValuePair> data) {
String result = null;
HttpPost request;
try {
request = new HttpPost("http:localhost:3000/api/v1/users");
ResponseHandler<String> handler = new BasicResponseHandler();
try {
result = client.execute(request, handler);
client.getConnectionManager().shutdown();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return result;
}
答案 0 :(得分:1)
android
无法理解localhost
。因此,请将localhost
替换为10.0.2.2
,然后尝试。它应该工作。
试试这个
http://10.0.2.2:3000/api/v1/users
答案 1 :(得分:0)
在第一个视图中,我认为传递URL
存在一些格式问题从
http:localhost:3000/api/v1/users
到
http://localhost:3000/api/v1/users
修改强>
And yes if you are running the emulator it is already taken the local host
this提供更多信息。
答案 2 :(得分:0)
试试这个
http://10.0.2.2:3000/api/v1/users
Android不懂localhost行的pc浏览器。