在Android应用中获取网页
1.获取权限
在Manifest文件的application外添加权限
<uses-permission android:name="android.permission.INTERNET"/>
2.创建控件
在layout文件中添加webView
3.创建java类
public class HttpThread extends Thread{
private String url;
private WebView webView;
private Handler handler;
public HttpThread(String url,WebView webView,Handler handler) //构造函数
{
this.url=url;
this.webView=webView;
this.handler=handler;
}
@Override
public void run() //创建第二线程运行内容
{
try {
URL httpUrl=new URL(url); //获取访问的url
try {
HttpURLConnection conn=(HttpURLConnection)httpUrl.openConnection();
conn.setReadTimeout(5000);//最迟读取时间
conn.setRequestMethod("GET");//读取方式为GET
final StringBuffer str_buff = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String str;
while ((str= reader.readLine())!=null)
{
str_buff.append(str); //将输入流填充入str_buff中
}
handler.post(new Runnable(){
public void run(){
webView.loadData(str_buff.toString(),"text/html;charset=utf-8",null); //加载数据str_buff
}
});
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
4.在MainActivity中调用
首先创建变量
private WebView webView;
private Handler handler = new Handler();
然后在OnCreate()中将webView与layout中空间进行id绑定,同时用.start()调用第二线程
webView = (WebView)findViewById(R.id.webView) ;
new HttpThread("http://howtostudio.cn",webView,handler).start();
运行结果