2012-02-10 53 views
0

所以我建立一個URL來調用來獲得JSON響應,但面臨一個奇怪的問題。如下所示構建URL返回「未找到」,但出於測試目的,我只是將URL構建爲「http://api.themoviedb.org/3/search/person?api_key=XXX & query = brad」,並且沒有「 t附加任何東西,並返回正確的響應。也嘗試不編碼「文本」和相同的東西...沒有找到。有任何想法嗎?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());'打印出來? – 2012-02-10 17:55:40

+0

它打印出正確的地址,我甚至複製/粘貼到瀏覽器,它的工作... – Paul 2012-02-10 18:00:27

+0

遠射,但它可能需要編碼您的API密鑰? – Peter 2012-02-10 18:10:53

回答

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());