android - 如何在谷歌地图中获取解析 url 以获取有关 android 中位置和邻域的详细信息

标签 android json dictionary

这是我的代码

public static JSONObject getLocationInfo(String address) {
                StringBuilder stringBuilder = new StringBuilder();
                try {

               // address = address.replaceAll(" ","%20");    

                HttpPost httppost = new HttpPost("http://maps.google.com/maps/api/geocode/json?address=" + address + "&sensor=false");
                HttpClient client = new DefaultHttpClient();
                HttpResponse response;
                stringBuilder = new StringBuilder();


                    response = client.execute(httppost);
                    HttpEntity entity = response.getEntity();
                    InputStream stream = entity.getContent();
                    int b;
                    while ((b = stream.read()) != -1) {
                        stringBuilder.append((char) b);
                    }
                } catch (ClientProtocolException e) {
                } catch (IOException e) {
                }

                JSONObject jsonObject = new JSONObject();
                try {
                    jsonObject = new JSONObject(stringBuilder.toString());
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                return jsonObject;
            }

我在响应中收到一个 json 异常。请告诉我一个有效的网址。我还为 gps 做了 mapview(api key 和 android list 许可)。

日志:

04-03 16:35:20.548: E/CheckinTask(202): java.net.UnknownHostException: android.clients.google.com
04-03 16:35:20.548: E/CheckinTask(202):     at java.net.InetAddress.lookupHostByName(InetAddress.java:506)
04-03 16:35:20.548: E/CheckinTask(202):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:294)
04-03 16:35:20.548: E/CheckinTask(202):     at java.net.InetAddress.getAllByName(InetAddress.java:256)
04-03 16:35:20.548: E/CheckinTask(202):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:136)
04-03 16:35:20.548: E/CheckinTask(202):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
04-03 16:35:20.548: E/CheckinTask(202):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
04-03 16:35:20.548: E/CheckinTask(202):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359)
04-03 16:35:20.548: E/CheckinTask(202):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
04-03 16:35:20.548: E/CheckinTask(202):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
04-03 16:35:20.548: E/CheckinTask(202):     at android.net.http.AndroidHttpClient.execute(AndroidHttpClient.java:248)
04-03 16:35:20.548: E/CheckinTask(202):     at com.google.android.common.http.GoogleHttpClient.executeWithoutRewriting(GoogleHttpClient.java:203)
04-03 16:35:20.548: E/CheckinTask(202):     at com.google.android.common.http.GoogleHttpClient.execute(GoogleHttpClient.java:245)
04-03 16:35:20.548: E/CheckinTask(202):     at com.google.android.common.http.GoogleHttpClient.execute(GoogleHttpClient.java:313)
04-03 16:35:20.548: E/CheckinTask(202):     at com.google.android.gsf.checkin.CheckinTask.sendRequest(CheckinTask.java:254)
04-03 16:35:20.548: E/CheckinTask(202):     at com.google.android.gsf.checkin.CheckinTask.doInBackground(CheckinTask.java:150)
04-03 16:35:20.548: E/CheckinTask(202):     at com.google.android.gsf.checkin.CheckinService$1.doInBackground(CheckinService.java:221)
04-03 16:35:20.548: E/CheckinTask(202):     at com.google.android.gsf.checkin.CheckinService$1.doInBackground(CheckinService.java:214)
04-03 16:35:20.548: E/CheckinTask(202):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
04-03 16:35:20.548: E/CheckinTask(202):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
04-03 16:35:20.548: E/CheckinTask(202):     at java.util.concurrent.FutureTask.run(FutureTask.java:138)
04-03 16:35:20.548: E/CheckinTask(202):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
04-03 16:35:20.548: E/CheckinTask(202):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
04-03 16:35:20.548: E/CheckinTask(202):     at java.lang.Thread.run(Thread.java:1019)

最佳答案

试试这个:

    private String getJSONFile(String URL) {
    HttpGet httpGet = new HttpGet(URL);
    HttpClient httpClient = new DefaultHttpClient();
    HttpResponse httpResponse;
    StringBuilder stringBuilder = new StringBuilder();

    try {
        httpResponse = httpClient.execute(httpGet);
        HttpEntity httpEntity = httpResponse.getEntity();
        InputStream inputStream = httpEntity.getContent();
        int c;
        while ((c = inputStream.read()) != -1) {
            stringBuilder.append((char) c);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return stringBuilder.toString();
}

关于android - 如何在谷歌地图中获取解析 url 以获取有关 android 中位置和邻域的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9991616/

相关文章:

android - 使用 android.hardware.camera2

android - 未创建 SQLite 数据库

java - 用户单击通知时如何启动 Activity ?

c# - 如何在充满字典的ComboBox中获取SelectedValue的值

python - 如何检查两个字典的键是否相同

ios - 从 Swift 中的字典中读取 - 不工作

android - java.io.IOException : No such file or directory (save image)

javascript - 我应该使用 JSON 数组还是对象?

json - 选择查询以获取 orientdb 中 JSON 中的字段

java - Jackson - 双向 - 反序列化父 ID