从Android中的谷歌图片搜索中获取网址

时间:2010-12-10 22:55:23

标签: android html imageview

我试图在给出一个URL之后能够查看网页的源代码,以便解析代表和图像网址的某个字符串的文本。

我发现这篇帖子几乎就是我试图做的事情,但无法让它发挥作用:

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图像的url然后在图像视图中显示它将很简单。

请告诉我,如果我错了。

1 个答案:

答案 0 :(得分:1)

首先,Google has a search API,这将是比您正在进行的搜索更好的解决方案,因为API将是可靠的,而您的解决方案将不会。

其次,use the BasicResponseHandler pattern用于字符串响应,因为它更简单。

第三,对于像这样的支持网站来说,“对某些方法不起作用”是一个非常无用的描述。如果它崩溃了,正如kgiannakakis指出的那样,你会有例外。在Eclipse中使用adb logcat,DDMS或DDMS透视图来检查堆栈跟踪并找出异常是什么。这将为您提供解决问题的线索。