继续获取“目标主机不能为空,或在参数中设置”

时间:2013-05-21 17:20:28

标签: android url exception

当我尝试向具有特殊字符的服务器(字符'å')发出HTTP请求时,我不断收到上述错误(标题)。我试着打电话:

_login = URLEncoder.encode(_login, "utf-8");

但我仍然有例外。如果我尝试更改URL,它可以正常工作。似乎它发生在我尝试的任何URL,如果它有特殊字符。例如http://www.ål.no

任何人都知道解决方法吗?一种方法当然可以是使用IP地址。但我宁愿避免这种情况。

感谢您的帮助!

部分源代码:

    private String _login =        "http://www.ål.no";

    HttpClient httpclient = new DefaultHttpClient();

    try {
        _login = URLEncoder.encode(_login, "utf-8");
    } catch (UnsupportedEncodingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    HttpPost httppost = new HttpPost(_login);

    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

    //nameValuePairs.add(new BasicNameValuePair("Mail", this.Email));
    //nameValuePairs.add(new BasicNameValuePair("Password", this.Password));


    try
    {
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        BasicHttpResponse response = null;

        try
        {
            response = (BasicHttpResponse) httpclient.execute(httppost);
        }
        catch (ClientProtocolException e)
        {
            System.out.println("BasicHttpResponse");
            e.printStackTrace();
        }
}
编辑:找到一个解决方法。使用Firebug深入挖掘。根据Firebug,服务器在通信时有另一个名字(据我所见)。此名称不包含任何特殊字符,我成功地使用我的应用程序与服务器进行通信。谢谢大家的帮助! :)

1 个答案:

答案 0 :(得分:0)

我想我理解你所要求的。这是指向URL将标识的特殊字符列表的链接。

http://www.degraeve.com/reference/urlencoding.php

如果那不是你需要的,请告诉我。

为了节省您的时间,您要搜索的字符是%E5