gpt4 book ai didi

Android 读取 HTML 文件

转载 作者:行者123 更新时间:2023-11-30 04:03:46 27 4
gpt4 key购买 nike

我正在尝试从 url 源读取 html 文件,但我得到了 nullpointerexception。这是我的代码:

public class NetworkThread extends AsyncTask<String, Integer, String> {

URL url;
StringBuffer sb;
InputStream is;


@Override
protected String doInBackground(String... arg0) {
// TODO Auto-generated method stub
String webUrl = etUrl.getText().toString();
try {
url = new URL(webUrl);
BufferedReader in = new BufferedReader(
new InputStreamReader(url.openStream()));
String htmlLine;
while ((htmlLine = in.readLine()) != null)
sb.append(htmlLine);

in.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "Bad URL";
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "Input / Output";
} catch (NullPointerException e) {
e.printStackTrace();
return "Null";
}
return sb.toString();
}

@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
html.setText(result);
}

}

我尝试在常规 Java 中运行这个程序——对 URL 进行硬编码,它运行良好。

但是,当我在 android 上运行它时,我在我的 TextView 中收到“Null”消息。

LogCat 说 NullPointerException 来自 sb.append(htmlLine);

最佳答案

你还没有初始化你的 StringBuffer 对象:

StringBuffer sb = new StringBuffer();

您也可以尝试使用此代码从 url 中读取内容:

public class ReadWebpageAsyncTask extends Activity {
private TextView textView;


/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView = (TextView) findViewById(R.id.TextView01);
}

private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
String response = "";
for (String url : urls) {
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
try {
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();

BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
String s = "";
while ((s = buffer.readLine()) != null) {
response += s;
}

} catch (Exception e) {
e.printStackTrace();
}
}
return response;
}

@Override
protected void onPostExecute(String result) {
textView.setText(result);
}
}

public void readWebpage(View view) {
DownloadWebPageTask task = new DownloadWebPageTask();
task.execute(new String[] { "http://www.stackoverflow.com" });

}
}

关于Android 读取 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12083020/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com