在Android上用HttpURLConnection获取网页内容


界面效果如下,在编辑框中输入网址,点击按钮后,获取编辑框中的网址,打开HttpURLConnection连接,并获取输入流,将返回的流保存为html文件,然后再用WebView将html文件显示出来。

在Android上用HttpURLConnection获取网页内容

主要代码GetHtml.java(完整代码GetHtml.zip下载在下面的地址)

下载在帮客之家的1号FTP服务器里,下载地址:

FTP地址:ftp://www.bkjia.com

用户名:www.bkjia.com

密码:www.muu.cc

在 2011年LinuxIDC.com\8月\在Android上用HttpURLConnection获取网页内容

下载方法见 http://www.bkjia.net/thread-1187-1-1.html

  1. package ckl.gethtml;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileOutputStream;  
  5. import java.io.IOException;  
  6. import java.io.InputStream;  
  7. import java.net.HttpURLConnection;  
  8. import java.net.MalformedURLException;  
  9. import java.net.URL;  
  10.   
  11. import android.app.Activity;  
  12. import android.os.Bundle;  
  13. import android.util.Log;  
  14. import android.view.View;  
  15. import android.view.View.OnClickListener;  
  16. import android.webkit.WebView;  
  17. import android.widget.Button;  
  18. import android.widget.EditText;  
  19.   
  20. public class GetHtml extends Activity {  
  21.     private EditText mEdit = null;  
  22.     private Button mButton = null;  
  23.     private WebView mWeb = null;  
  24.       
  25.     public void onCreate(Bundle savedInstanceState) {  
  26.         super.onCreate(savedInstanceState);  
  27.         setContentView(R.layout.main);  
  28.           
  29.         mEdit = (EditText)findViewById(R.id.myEdit1);  
  30.         mButton = (Button)findViewById(R.id.myButton1);  
  31.         mWeb = (WebView)findViewById(R.id.myWeb1);  
  32.           
  33.         mWeb.getSettings().setJavaScriptEnabled(true);  
  34.         mWeb.getSettings().setPluginsEnabled(true);  
  35.           
  36.         mButton.setOnClickListener(new OnClickListener() {  
  37.             public void onClick(View v) {  
  38.                 String strUrl = mEdit.getText().toString();  
  39.                 String strFile = "/sdcard/test.html";  
  40.                 if (!strUrl.startsWith("http://")) {  
  41.                     strUrl = "http://" + strUrl;  
  42.                 }  
  43.                 getStaticPageByBytes(strUrl, strFile);  
  44.                 mWeb.loadUrl("file://" + strFile);  
  45.             }  
  46.         });  
  47.     }  
  48.       
  49.     private void getStaticPageByBytes(String surl, String strFile){  
  50.           
  51.         Log.i("getStaticPageByBytes", surl + ", " + strFile);  
  52.           
  53.         HttpURLConnection connection = null;  
  54.         InputStream is = null;  
  55.           
  56.         File file = new File(strFile);  
  57.         FileOutputStream fos = null;  
  58.   
  59.         try {  
  60.             URL url = new URL(surl);  
  61.             connection = (HttpURLConnection)url.openConnection();  
  62.               
  63.             int code = connection.getResponseCode();  
  64.             if (HttpURLConnection.HTTP_OK == code) {  
  65.                 connection.connect();  
  66.                 is = connection.getInputStream();  
  67.                 fos = new FileOutputStream(file);  
  68.                   
  69.                 int i;  
  70.                 while((i = is.read()) != -1){  
  71.                     fos.write(i);    
  72.                 }  
  73.                   
  74.                 is.close();  
  75.                 fos.close();  
  76.             }  
  77.         } catch (MalformedURLException e) {  
  78.             e.printStackTrace();  
  79.         } catch (IOException e) {  
  80.             e.printStackTrace();  
  81.         } finally {  
  82.             if (connection != null) {  
  83.                 connection.disconnect();  
  84.             }  
  85.         }  
  86.     }  
  87. }  
  • 1
  • 2
  • 3
  • 下一页

相关内容