2012-02-10 3 views
0

Donc, je construis une URL à appeler pour obtenir une réponse JSON, mais face à un problème étrange. Construire l'URL comme indiqué ci-dessous renvoie "Non trouvé" mais à des fins de test je viens de construire l'URL en tant que telle "http://api.themoviedb.org/3/search/person?api_key=XXX & query = brad" et didn ' t ajouter quelque chose et qui a renvoyé la bonne réponse. Aussi essayé de ne pas encoder "texte" et la même chose ... Non trouvé. Des idées?Android Java étrange construction du problème 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

Que fait la ligne 'Log.v (" URL ", url.toString());' imprimer? –

+0

Il imprime la bonne adresse que j'ai même copié/collé dans le navigateur et cela a fonctionné ... – Paul

+0

Long shot, mais est-il possible que vous avez besoin d'encoder votre clé API? – Peter

Répondre

0

Essayez d'utiliser le code ci-dessous. Je l'ai copié et collé à partir d'un code que j'utilise et je sais que cela fonctionne. Peut ne pas résoudre votre problème mais je pense que ça vaut le coup. Je l'ai édité un peu et il devrait juste être copier et coller dans votre code maintenant.

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