文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>获取网页内容

获取网页内容

时间:2010-09-08  来源:topzhujia

  1. package zj.cto; 
  2.  
  3. import java.io.FileOutputStream; 
  4. import java.io.IOException; 
  5. import java.io.OutputStreamWriter; 
  6. import java.net.URI; 
  7. import java.net.URISyntaxException; 
  8. import java.util.Scanner; 
  9.  
  10. import org.apache.http.HttpHost; 
  11. import org.apache.http.HttpResponse; 
  12. import org.apache.http.HttpVersion; 
  13. import org.apache.http.client.ClientProtocolException; 
  14. import org.apache.http.client.methods.HttpGet; 
  15. import org.apache.http.conn.ClientConnectionManager; 
  16. import org.apache.http.conn.params.ConnRoutePNames; 
  17. import org.apache.http.conn.scheme.PlainSocketFactory; 
  18. import org.apache.http.conn.scheme.Scheme; 
  19. import org.apache.http.conn.scheme.SchemeRegistry; 
  20. import org.apache.http.impl.client.DefaultHttpClient; 
  21. import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager; 
  22. import org.apache.http.params.BasicHttpParams; 
  23. import org.apache.http.params.HttpParams; 
  24. import org.apache.http.params.HttpProtocolParams; 
  25.  
  26. /** 
  27.  * @author &#31069 &#22025 
  28.  *  
  29.  */ 
  30. public class BlogVistor { 
  31.  
  32.     /** 
  33.      * @param args 
  34.      */ 
  35.     public static void main(String[] args) { 
  36.         System.out.println("Start..."); 
  37.         new BlogVistor().start(); 
  38.         System.out.println("End."); 
  39.     } 
  40.  
  41.     private DefaultHttpClient httpclient; 
  42.     private HttpGet request; 
  43.     private HttpResponse response = null
  44.  
  45.     /** 
  46.      *  
  47.      */ 
  48.     public BlogVistor() { 
  49.         super(); 
  50.         // this.httpclient = new DefaultHttpClient(); 
  51.         // make sure to use a proxy that supports connect 
  52.         HttpHost proxy = new HttpHost("edu6.zzzcn.info"2012"http"); 
  53.         // this.target = new HttpHost("topzhujia.blog.51cto.com", 80, "http"); 
  54.  
  55.         SchemeRegistry supportedSchemes = new SchemeRegistry(); 
  56.         supportedSchemes.register(new Scheme("http", PlainSocketFactory 
  57.                 .getSocketFactory(), 80)); 
  58.  
  59.         // prepare parameters 
  60.         HttpParams params = new BasicHttpParams(); 
  61.         HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_0); 
  62.         HttpProtocolParams.setContentCharset(params, "UTF-8"); 
  63.         HttpProtocolParams.setUseExpectContinue(params, true); 
  64.  
  65.         ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, 
  66.                 supportedSchemes); 
  67.         this.httpclient = new DefaultHttpClient(ccm, params); 
  68.         httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, 
  69.                 proxy); 
  70.  
  71.         request = new HttpGet(); 
  72.         try { 
  73.             request.setURI(new URI("http://topzhujia.blog.51cto.com")); 
  74.         } catch (URISyntaxException e) { 
  75.  
  76.             e.printStackTrace(); 
  77.         } 
  78.     } 
  79.  
  80.     private void destroy() { 
  81.         this.httpclient.getConnectionManager().shutdown(); 
  82.     } 
  83.  
  84.     private void release() { 
  85.         try { 
  86.             this.response.getEntity().consumeContent(); 
  87.         } catch (IOException e) { 
  88.  
  89.             e.printStackTrace(); 
  90.         } 
  91.     } 
  92.  
  93.     public void start() { 
  94.         OutputStreamWriter cout = null
  95.         Scanner cin; 
  96.         try { 
  97.             response = httpclient.execute(request); 
  98.             System.out.println("Request state: " + response.getStatusLine()); 
  99.             cout = new OutputStreamWriter(new FileOutputStream("51cto.html"), "gb2312"); 
  100.             cin = new Scanner(response.getEntity().getContent(), "gb2312"); 
  101.             while (cin.hasNextLine()) { 
  102.                 cout.append(cin.nextLine()); 
  103.             } 
  104.             cout.flush(); 
  105.             cout.close(); 
  106.             cin.close(); 
  107.             this.release(); 
  108.         } catch (ClientProtocolException e) { 
  109.             e.printStackTrace(); 
  110.         } catch (IOException e) { 
  111.             e.printStackTrace(); 
  112.  
  113.         } 
  114.  
  115.         this.destroy(); 
  116.     } 

 

排行榜 更多 +
谷歌卫星地图免费版下载

谷歌卫星地图免费版下载

生活实用 下载
谷歌卫星地图免费版下载

谷歌卫星地图免费版下载

生活实用 下载
kingsofpool官方正版下载

kingsofpool官方正版下载

赛车竞速 下载