我试图在给出一个URL之后能够查看网页的源代码,以便解析代表和图像网址的某个字符串的文本。
我发现这篇帖子几乎就是我试图做的事情,但无法让它发挥作用:
这是我的代码。
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然后在图像视图中显示它将很简单。
请告诉我,如果我错了。
答案 0 :(得分:1)
首先,Google has a search API,这将是比您正在进行的搜索更好的解决方案,因为API将是可靠的,而您的解决方案将不会。
其次,use the BasicResponseHandler
pattern用于字符串响应,因为它更简单。
第三,对于像这样的支持网站来说,“对某些方法不起作用”是一个非常无用的描述。如果它崩溃了,正如kgiannakakis指出的那样,你会有例外。在Eclipse中使用adb logcat
,DDMS或DDMS透视图来检查堆栈跟踪并找出异常是什么。这将为您提供解决问题的线索。