Java 下载html源代码并加载它
我从这里找到了这个代码。但当我试着运行它时,我的程序总是崩溃。我已经在中添加了internet权限。有什么想法吗 编辑:这是完整的错误消息。08-02 00:16:47.364:E/EmbeddedLogger(1577):获取包标签时出错:com.jimmyc.lawrenceh.schedulinglookup Edit2:它在安卓2.2上可以工作,但在安卓4.0/3.0上不工作Java 下载html源代码并加载它,java,android,html,web-testing,Java,Android,Html,Web Testing,我从这里找到了这个代码。但当我试着运行它时,我的程序总是崩溃。我已经在中添加了internet权限。有什么想法吗 编辑:这是完整的错误消息。08-02 00:16:47.364:E/EmbeddedLogger(1577):获取包标签时出错:com.jimmyc.lawrenceh.schedulinglookup Edit2:它在安卓2.2上可以工作,但在安卓4.0/3.0上不工作 private void initialize() { //initialize variable
private void initialize() {
//initialize variables here
try {
getHtml();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void getHtml() throws ClientProtocolException, IOException {
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet("http://www.yahoo.com");
HttpResponse response = httpClient.execute(httpGet, localContext);
String result = "";
BufferedReader reader =
new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = null;
while ((line = reader.readLine()) != null){
result += line + "\n";
// Toast.makeText(Connect.this, line.toString(), Toast.LENGTH_LONG).show();
}
}
我认为您正在尝试在UI线程中下载HTML代码。尝试在后台下载它,使用 编辑。如果你说它在安卓2.2上工作,但在安卓4.0/3.0上不工作,那么我完全肯定你是想在UI线程中下载它。从Android 3.0开始,因为你可以阻止它。您必须在指定的时间内完成下载
请原谅我的英语。当它崩溃时,您是否收到任何错误消息?编辑:以下是错误消息:08-02 00:16:47.364:E/EmbeddedLogger(1577):获取包标签时出错:@user1526556请更新您的问题并从logcatI添加完整的错误消息。我相信这是使用execute函数的HTTP响应有问题。我把一个日志放在ea行之后,它似乎在那里崩溃了。不过,我的logcat没有出现错误。它正在一台旧的平板电脑上工作,但不是一台安卓4.0或3.0的平板电脑。我该怎么做?你必须在你的活动中创建一个内部类。该类必须扩展AsyncTask,并且您必须将方法
getHtml
放入doInBackground()
中。出于某种原因,它可以工作,但一旦我取消对toast的注释,它就会崩溃。我不允许从后台线程显示任何Toast吗?我认为Toast必须在UI线程中运行,尝试将Toast放入onPostExecute()
方法中