AndroidManifest.xml文件中加入网络访问的权限设置:
<uses-permission android:name="android.permission.INTERNET" />
activity_main.xml代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.jt.http_01.MainActivity" >
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
WebViewLoadData2.java代码
/**
* 先使用HttpURLConnection进行网络通信,读取网络资源
* 再使用WebView的loadData(String data, String mimeType, String encoding)方法,加载HTML代码(读取到的网络资源)
* 最后结合Handler机制更新UI界面
* @author jiatao
* @date 2015-5-1
* @version 1.0
*/
package com.jt.http_01;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebView;
public class WebViewLoadData2 extends Activity {
private WebView webView;
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initDisplay();//调用初始化界面函数
}
/**
* 初始化界面
*/
public void initDisplay() {
webView = (WebView) findViewById(R.id.webView1);
//调用HttpThread(String url,WebView webView,Handler handler)构造方法开启线程
new HttpThread("http://www.163.com", webView, handler).start();
}
}
HttpThread.java代码
/**
* 先使用HttpURLConnection进行网络通信,读取网络资源
* 再使用WebView的loadData(String data, String mimeType, String encoding)方法,加载HTML代码(读取到的网络资源)
* 最后结合Handler机制更新UI界面
* @author jiatao
* @date 2015-5-1
* @version 1.0
*/
package com.jt.http_01;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.os.Handler;
import android.webkit.WebView;
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() {
// TODO Auto-generated method stub
super.run();
try {
//使用URL类封装HTTP资源的URL地址
URL httpUrl = new URL(url);
try {
//使用URL的openConnection()方法获取与改URL地址对应的HttpURLConnection对象实例
HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
//设置网络请求的超时时间
conn.setReadTimeout(5000);
//设置网络请求方式
conn.setRequestMethod("GET");
final StringBuffer sb = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String str;
while((str = reader.readLine())!=null){
sb.append(str);
}
handler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
webView.loadData(sb.toString(), "text/html;charset=gb2312", "utf-8");
}
});
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}