当我尝试向具有特殊字符的服务器(字符'å')发出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,服务器在通信时有另一个名字(据我所见)。此名称不包含任何特殊字符,我成功地使用我的应用程序与服务器进行通信。谢谢大家的帮助! :)
答案 0 :(得分:0)
我想我理解你所要求的。这是指向URL将标识的特殊字符列表的链接。
http://www.degraeve.com/reference/urlencoding.php
如果那不是你需要的,请告诉我。
为了节省您的时间,您要搜索的字符是%E5