2

googleplacesapiの結果からjsonオブジェクトを作成しようとしています。しかし、1行のコードが私に多くの問題を引き起こしています。私の質問は、問題が何であるかをどうやって見つけるのかということです。私は正しい例外を捕まえることができないようです(しかし、デバッグの初心者です)。渡すURLの値は次のとおりです: https ://maps.googleapis.com/maps/api/place/search/json?location = 34.7、-86.5&radius = 16000&types = food&name = mcdonalds&sensor = true&key =(myApiCodeWhichImNOTPostingHere )

^私は正しいapicodeを持っており、リンクはandroidの私たちの側で機能します。

これが問題の方法です(問題を引き起こしている行が強調表示されています)。

        public static JSONObject getTheJSON(String url){
                        JSONObject json=null;
                        try{
                            DefaultHttpClient myHttpClient = new DefaultHttpClient();
                            HttpPost myHttpPost = new HttpPost(url);

            //this line below is giving me problems (jumps streight to the catch Exception)
                            HttpResponse response = myHttpClient.execute(myHttpPost); 
            //this line above is giving me problems(jumps streight to the catch Exception)

                            String data = EntityUtils.toString(response.getEntity());
                            json= new JSONObject(data);
                        //parse the JSONObject
                           } catch (UnsupportedEncodingException e){e.printStackTrace();}
                             catch (ClientProtocolException e){e.printStackTrace();}
                             catch (IOException e){e.printStackTrace();}
                             catch (JSONException e) {e.printStackTrace();}
                             catch (NullPointerException e){ Log.e("My APP", "exception: " + e.getMessage());}

    /* jumps to line below (skips the other catch exceptions)
 the log reads "null" since i use the "getMessage()" so thats not useful*/  

                     catch (Exception e ) { Log.e("My APP", "exception: " + e.getMessage());}
                            return json;  // returning the JSON object

                }

(編集):これがlogcatです。ファクトリクライアントへの接続エラーが発生したと思います

10-16 21:11:30.105: E/My APP(980): exception
10-16 21:11:30.345: E/MapActivity(980): Couldn't get connection factory client
4

3 に答える 3

1

SSL設定を確認することをお勧めします。https://urlを呼び出しています

于 2012-10-15T22:17:26.447 に答える
1

e.getMessage()を使用する代わりに、(メソッドe.printStackTrace()の外部であるが句内で)を使用して、実際の問題が何であるかを追跡できるようにします。それから賢明なことが得られない場合は、ここにスタックトレースを投稿してください。Log.e()catch

編集(コメントを参照):

私のLogCat(フィルターなし)は常に正しい方法でスタックトレースを表示しますが、少し検索した後、常にそうであるとは限らないようです 。このSOの質問を参照してください。

メソッドでは3つの(!)引数を使用する必要がありますLog.e。例:

Log.e("My APP", "exception", e);
于 2012-10-15T22:25:02.293 に答える
1

私はあなたのコードをEclipseで実行しましたが、正常に実行され、有効な応答が得られました。これはおそらくSSL関連だと思います。次の手順でSSLデバッグを有効にできます-Djavax.net.debug=all

SSLデバッグを有効にした後、出力ログを貼り付けることはできますか?

于 2012-10-15T22:49:59.807 に答える