Android主机名可能不为null

时间:2014-04-01 04:41:23

标签: android rest httpclient

我知道这个问题已被多次询问过,但这些问题的答案并不适用于我。

我正在尝试访问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;
}

3 个答案:

答案 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浏览器。