1

このソースコードでGoogle geo apiをリクエストしようとしました

client = 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 を試しましたが、成功しませんでした:(

よろしくイゴール

4

2 に答える 2

6

URL全体ではなく、ISO-8859-1でもなく、個々のリクエストパラメータ値をUTF-8でURLエンコードする必要があります。

String url = "http://maps.googleapis.com:80/maps/api/geocode/xml"
    + "?address=" + URLEncoder.encode("Königstraße, Berlin", "UTF-8") 
    + "&sensor=false";
于 2012-05-07T20:08:50.773 に答える
0

K%C3%B6nigstra%C3%9Fe UTF-8 パーセント エンコーディングも同様に機能します。

于 2012-05-07T20:17:57.153 に答える