我尝试使用此源代码
请求googles geo apiclient = new DefaultHttpClient();
HttpGet get=new HttpGet(uri);
try {
HttpResponse response = client.execute(get);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200 ){
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
try {
XMLReader parser = XMLReaderFactory.createXMLReader();
parser.setContentHandler(gh);
parser.parse(new InputSource(is));
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
URI是这样的吗? http://maps.googleapis.com:80/maps/api/geocode/xml?address =Königstraße,Berlin& sensor = false
抛出异常:非法角色!
我怎样才能逃脱ä,ü,ö,ß和空白? 我尝试使用ISO-8859-1作为编码的java.net.URLEncoder而没有成功:(
尊重igor
答案 0 :(得分:5)
您需要使用UTF-8对单个请求参数值进行URL编码,而不是使用ISO-8859-1对整个URL进行URL编码。
String url = "http://maps.googleapis.com:80/maps/api/geocode/xml"
+ "?address=" + URLEncoder.encode("Königstraße, Berlin", "UTF-8")
+ "&sensor=false";
答案 1 :(得分:0)
K%C3%B6nigstra%C3%9Fe UTF-8百分比编码也可以。