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