2010-12-10 89 views
0

我想能夠查看一個網頁的源代碼後,給出一個網址,以解析文本的某個字符串代表和圖像的網址。從android的谷歌圖片搜索得到的網址

我發現這個職位是非常什麼我試圖做後卻無法得到它的工作:

Post

這是我下面的代碼。

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; 
    } 

但由於某些原因,它只是不起作用。它迫使我在調用方法時使用try catch語句。一旦這個工程,我認爲它會簡單從這裏使用正則表達式找到字符串"href="/imgres?imgurl=........jpg"找到一個JPG圖像的網址,然後顯示在圖像視圖。

請告訴我,如果我在這一切都錯了。

+0

您被迫使用try-catch塊,因爲該方法拋出異常。 Java中的例外被檢查。現在,什麼不起作用?運行代碼時是否會遇到任何異常? – kgiannakakis 2010-12-10 23:52:27

回答

1

首先,Google has a search API,這將是一個更好的解決方案比你正在經歷的刮,因爲API將是可靠的,你的解決方案將不會。

其次,use the BasicResponseHandler pattern用於字符串響應,因爲它更簡單。第三,說一些「不起作用的東西」對於像這樣的支持網站來說是一個相當無用的描述。如果它崩潰,正如kgiannakakis指出的那樣,你將會有一個例外。在Eclipse中使用adb logcat,DDMS或DDMS透視圖來檢查堆棧跟蹤並找出異常情況。這會給你一些線索,幫助你解決你遇到的任何問題。

+0

就是這樣,應用程序不會崩潰,我只是在一些建議後,如果這是真正的正確方法。 Google API與Android應用程序有何關係?您提供的鏈接中的文檔似乎只是舉例說明了與網頁相關的示例。 – SamRowley 2010-12-11 00:14:00

+0

@SamRowley:「該應用程序不會崩潰」 - 然後出了什麼問題?就Google圖片搜索API而言,我只是鏈接到他們網站的前門。以下是指向其JSON API的鏈接,該API可用於以任何語言編寫圖像查詢應用程序,該應用程序可以處理帶有嵌入式狀態代碼的JSON編碼結果集:http://code.google.com/apis/ imagesearch/v1/jsondevguide.html – CommonsWare 2010-12-11 00:31:14

+0

謝謝你的答覆和評論,他們一直非常有幫助。 – SamRowley 2010-12-11 01:14:50