android學習筆記15--------------擷取網站html

來源:互聯網
上載者:User

import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.net.HttpURLConnection;
 import java.net.URL;
 
 import junit.framework.TestCase;
 
 import org.junit.Test;
 
 
 public class TestInternet extends TestCase
 {
     public byte[] readStream(InputStream inputStream) throws Exception
     {
         byte[] buffer=new byte[1024];
         int len=-1;
         ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
         
         while((len=inputStream.read(buffer))!=-1)
         {
             byteArrayOutputStream.write(buffer,0,len);
         }
         
         inputStream.close();
         byteArrayOutputStream.close();
         return byteArrayOutputStream.toByteArray();
     }
     /**
      * 擷取網址的html
      * @throws Exception
      */
     @Test public void testGetHtml() throws Exception
     {
         String urlpath="http://www.sina.com.cn/";
         URL url=new URL(urlpath);
         HttpURLConnection conn=(HttpURLConnection)url.openConnection();
         conn.setConnectTimeout(6*1000);  //設定連結逾時時間6s 
             //在android系統中,如果超過組件的阻塞時間,組件會被系統回收。時間大約10s。 
         conn.setRequestMethod("GET");
 
         if(conn.getResponseCode()==200)
         {
             InputStream inputStream=conn.getInputStream();
             byte[] data=readStream(inputStream);
             System.out.println(new String(data));
         }
     }
      
     /**
      * 擷取網片
      * @throws Exception
      */
     @Test public void testGetImage() throws Exception
     {
         String urlpath="http://h1.qhimg.com/images/logo/search-logo.png";//網片的地址
         URL url=new URL(urlpath);
         HttpURLConnection conn=(HttpURLConnection)url.openConnection();
         conn.setConnectTimeout(6*1000);  //設定連結逾時時間6s 
             //在android系統中,如果超過組件的阻塞時間,組件會被系統回收。時間大約10s。 
         conn.setRequestMethod("GET");
         System.out.println(conn.getResponseCode());
         if(conn.getResponseCode()==200)
         {
             InputStream inputStream=conn.getInputStream();
             byte[] data=readStream(inputStream);
             File file=new File("logo.png");
             FileOutputStream fileOutputStream=new FileOutputStream(file);
             fileOutputStream.write(data);
             fileOutputStream.close();
         }
     }
 }
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.net.HttpURLConnection;
 import java.net.URL;
 
import junit.framework.TestCase;
 
import org.junit.Test;
 
 
public class TestInternet extends TestCase
 {
  public byte[] readStream(InputStream inputStream) throws Exception
  {
   byte[] buffer=new byte[1024];
   int len=-1;
   ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
  
   while((len=inputStream.read(buffer))!=-1)
   {
    byteArrayOutputStream.write(buffer,0,len);
   }
  
   inputStream.close();
   byteArrayOutputStream.close();
   return byteArrayOutputStream.toByteArray();
  }
  /**
   * 擷取網址的html
   * @throws Exception
   */
  @Test public void testGetHtml() throws Exception
  {
   String urlpath="http://www.sina.com.cn/";
   URL url=new URL(urlpath);
   HttpURLConnection conn=(HttpURLConnection)url.openConnection();
   conn.setConnectTimeout(6*1000);  //設定連結逾時時間6s
    //在android系統中,如果超過組件的阻塞時間,組件會被系統回收。時間大約10s。
   conn.setRequestMethod("GET");
 
  if(conn.getResponseCode()==200)
   {
    InputStream inputStream=conn.getInputStream();
    byte[] data=readStream(inputStream);
    System.out.println(new String(data));
   }
  }
 
  /**
   * 擷取網片
   * @throws Exception
   */
  @Test public void testGetImage() throws Exception
  {
   String urlpath="http://h1.qhimg.com/images/logo/search-logo.png";//網片的地址   URL url=new URL(urlpath);


  HttpURLConnection conn=(HttpURLConnection)url.openConnection();
  conn.setConnectTimeout(6*1000);  //設定連結逾時時間6s
   //在android系統中,如果超過組件的阻塞時間,組件會被系統回收。時間大約10s。
  conn.setRequestMethod("GET");
  System.out.println(conn.getResponseCode());
  if(conn.getResponseCode()==200)
  {
   InputStream inputStream=conn.getInputStream();
   byte[] data=readStream(inputStream);
   File file=new File("logo.png");
   FileOutputStream fileOutputStream=new FileOutputStream(file);
   fileOutputStream.write(data);
   fileOutputStream.close();
  }
 }
}
 

 假如我要擷取網站的html用於My Phone開發,例如:

 

 

在控制台我們可以看到:

 

 

即我們成功擷取。

 

摘自 奔跑的蝸牛

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.