2012-02-10 3 views
0

JSONレスポンスを取得するために呼び出されるURLを構築していますが、奇妙な問題に直面しています。以下のようにURLを作成すると「見つかりません」が返されますが、テスト目的のために、「http://api.themoviedb.org/3/search/person?api_key=XXX & query = brad」というURLを作成しましたが、何も追加せず、正しい応答を返しました。また、 "text"と同じものをエンコードしないようにしてみました...見つかりませんでした。何か案は?Android Javaの奇妙な問題のビルドURL

 StringBuilder url = new StringBuilder(); 
     url.append("http://api.themoviedb.org/3/search/person?api_key=XXX&query=").append(URLEncoder.encode(text, ENCODING)); 
     Log.v("URL", url.toString()); 
     try { 
      HttpGet httpRequest = null; 
      httpRequest = new HttpGet(url.toString()); 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpResponse response = (HttpResponse) httpclient.execute(httpRequest); 
      HttpEntity entity = response.getEntity(); 
      BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity); 
      InputStream input = bufHttpEntity.getContent(); 
      String result = toString(input); 

      //JSONObject json = new JSONObject(result); 
      return result; 
+0

行 'Log.v(" URL "、url.toString());は何を出力しますか? –

+0

ブラウザにコピー/貼り付けされた正しいアドレスをプリントアウトしてくれました... – Paul

+0

ロングショットですが、APIキーをエンコードする必要がありますか? – Peter

答えて

0

下記のコードを試してみてください。私は使用しているコードからコピーして貼り付けています。あなたの問題は解決しないかもしれませんが、私はその価値があると思います。私はそれをちょっと編集しました。そして今すぐあなたのコードにコピーして貼り付けてください。

HttpGet request = new HttpGet(new URI(url.toString())); 
    HttpClient client = new DefaultHttpClient(); 
    HttpResponse response = client.execute(request); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8")); 
    StringBuilder builder = new StringBuilder(); 
    for (String line = null; (line = reader.readLine()) != null;) { 
     builder.append(line).append("\n"); 
    } 
    JSONObject jResponse = new JSONObject(builder.toString());