0

当我尝试向具有特殊字符(字符“å”)的服务器发出 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,服务器在通信时有另一个名称(据我所知)。此名称不包含任何特殊字符,并且我成功地使用我的应用程序与服务器进行了通信。感谢大家的帮助!:)

4

1 回答 1

0

我想我明白你的要求。这是 URL 将识别的特殊字符列表的链接。

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

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

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

于 2013-05-21T17:34:20.440 回答