2010-12-10 29 views
0

J'essaie d'être en mesure d'afficher le code source d'une page Web après avoir reçu une URL afin d'analyser le texte pour une certaine chaîne qui représente et URL de l'image.Gain URL de recherche d'image google dans android

Je trouve ce poste qui est à peu près ce que je suis après avoir essayé de le faire, mais ne peut le faire fonctionner:

Post

Ceci est mon code ci-dessous.

public String fetchImage() throws ClientProtocolException, IOException { 
     HttpClient client = new DefaultHttpClient(); 
     HttpGet request = new HttpGet("www.google.co.uk/images?q=songbird+oasis"); 
     HttpResponse response = client.execute(request); 

     String html = ""; 
     InputStream in = response.getEntity().getContent(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
     StringBuilder str = new StringBuilder(); 
     String line = null; 
     while((line = reader.readLine()) != null) 
     { 
      str.append(line); 
     } 
     in.close(); 
     html = str.toString(); 
     return html; 
    } 

mais pour une raison quelconque cela ne fonctionne tout simplement pas. Cela me force à utiliser une instruction try catch en appelant la méthode. Une fois que cela fonctionne, je pense que ce sera simple d'ici en utilisant regex pour trouver la chaîne "href="/imgres?imgurl=........jpg" pour trouver l'URL d'une image jpg pour ensuite être montré dans une vue d'image.

S'il vous plaît dites-moi si je vais à tout faux.

+0

Vous êtes obligé d'utiliser un bloc try-catch car la méthode génère des exceptions. Les exceptions en Java sont vérifiées. Maintenant, qu'est-ce qui ne fonctionne pas exactement? Avez-vous des exceptions quand vous exécutez le code? – kgiannakakis

Répondre

1

Tout d'abord, Google has a search API, ce qui sera une meilleure solution que le grattage que vous traversez, puisque l'API sera fiable, et votre solution ne sera pas.

Deuxièmement, use the BasicResponseHandler pattern pour les réponses de chaîne, car il est beaucoup plus simple. Troisièmement, dire quelque chose "ne fonctionne pas" est une description plutôt inutile pour un site de support comme celui-ci. Si ça plante, comme l'a fait remarquer kgiannakakis, vous aurez une exception. Utilisez adb logcat, DDMS ou la perspective DDMS dans Eclipse pour examiner la trace de la pile et déterminer l'exception. Cela vous donnera des indices sur la façon de résoudre tout problème que vous avez.

+0

C'est la chose, l'application ne plante pas, je étais juste après quelques conseils si c'était la bonne façon d'y aller vraiment. Avec l'API Google, comment cela se rapporte-t-il à l'application android? La documentation du lien que vous avez donné semble juste donner des exemples par rapport à une page Web. – SamRowley

+0

@SamRowley: "l'application ne plante pas" - alors qu'est-ce qui ne va pas? Pour ce qui est de l'API Google Image Search, je me suis juste connecté à la porte d'entrée de leur site. Voici un lien vers leur API JSON, qui "peut être utilisée pour écrire des applications de requête d'image dans n'importe quel langage capable de gérer un ensemble de résultats codé JSON avec des codes d'état incorporés.": Http://code.google.com/apis/ imagesearch/v1/jsondevguide.html – CommonsWare

+0

Merci pour la réponse et les commentaires qu'ils ont été extrêmement utiles. – SamRowley