我正在尝试使用以下代码从我的Android应用中的网址获取HTML源代码。但是,它在HttpResponse response = client.execute(request);
行崩溃了。我怎样才能解决这个问题?
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
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();
UPDATE!我显然是一个新用户发布我自己的官方答案,所以这里是:
感谢你们两位! Hichris的评论&链接指向我正确的方向。以下是造成问题的3个障碍:
AsyncTask
应该放在同一个类文件中,但作为一个
子类(我可能没有我的术语)doInBackground()
的{{1}}部分内执行此操作,而我应该在AsyncTask
中执行此操作。onPostExecute()
的网址未正确转换为AsyncTask
。这导致程序崩溃了一些网址而不是其他网址。答案 0 :(得分:0)
用于网络通话的最佳方式是Volley图书馆检查此链接" https://developers.google.com/events/io/sessions/325304728"。它非常简单且易于使用。检查以下链接,了解为网络呼叫创建HTTPClient和其他第三方库时遇到的问题" https://www.youtube.com/watch?v=MIc4kl3yXw0&list=LLckOGLeNzdRsRG5CvBux_dg&index=8"