AndroidManifest.xml文件中加入網絡訪問的權限設置:html
<uses-permission android:name="android.permission.INTERNET" />java
activity_main.xml代碼android
<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代碼web
/** * 先使用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(); } } }