HttpClient4.5实现页面静态化

原创 2016年08月28日 23:17:09

前两天学习HttpClient,大概理解了HttpClient的作用,后来得知httpClient也能做页面静态化,就在在百度上搜关于httpClient如何实现页面静态化,但搜到的结果全部都是很久以前的httpClient版本做的页面静态化,于是我便根据自己的理解,用HttpClient 4.5 做了一个页面静态化的例子,今天就在这里跟大家分享一下

httpClient实现页面静态化,需要用到它的get方法来获取到网页内的数据,再将页进行静态化

下面是httpClient的get方法的一个例子

 /**
  * @author 
  * @date 2016年8月18日 下午3:26:56
  * @return_type void
  * 发送get请求,读取网页内数据
  */
  @Test
  public void get(){
         CloseableHttpClient httpClient=HttpClients.createDefault();
        // 创建httpget.    
        HttpGet httpget = new HttpGet("http://localhost:8080/hotel/reserve/reserveList.action");  
        
        System.out.println("executing request " + httpget.getURI());  
        
        // 执行get请求.    
        HttpResponse response = null;
        
  try {
   response = httpClient.execute(httpget);
  } catch (ClientProtocolException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }  
  try {
          // 获取响应实体    
   
            HttpEntity entity = response.getEntity();  
            System.out.println("--------------------------------------");  
            
            // 打印响应状态    
            System.out.println(response.getStatusLine());  
            System.out.println("--------------------------------------");
            
            if (entity != null) {  
               
                // 打印响应内容    
    System.out.println("Response content: " + EntityUtils.toString(entity,"utf-8"));
            }
  } catch (org.apache.http.ParseException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
  // TODO Auto-generated catch block
   e.printStackTrace();
  }               
  }


了解了get方法之后,我们就可以利用get方法来实现httpClient页面静态化了

/**
 * @author wzg
 * @date 2016年8月22日 下午5:16:48
  * @project first
  * @package com.wzg.util
  */
public class Demo {
 
  public boolean test(String url,String htmlPage){
  
  //创建默认的httpClient实例
  CloseableHttpClient httpClient=HttpClients.createDefault();
  
  // 创建httpget.    
  HttpGet get = new HttpGet(url);
  
  try {
   //执行get请求
   CloseableHttpResponse response = httpClient.execute(get);
   
   //获取响应实体    
   HttpEntity entity = response.getEntity();
      
    //定义BufferedReader输入流来读取URL的响应 
   BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));
   
   String pageContent="";
   
   //逐行读取数据
   while(true){
    String line = br.readLine();
    if(line == null){
     break;
    }else{
     pageContent+=line;
     pageContent+="\n";
    }
   }
   
   //创建字符输出流
   FileWriter writer = new FileWriter(htmlPage);
   
    PrintWriter fout = new PrintWriter(writer);
   
   fout.print(pageContent);
   fout.close();
  } catch (IOException e) {
      System.out.println("IOException");
             return false;
  }
  
  return true;
 }
  public static void main(String[] args) {
  Demo demo = new Demo();
  demo.test("http://localhost:8080/hotel/admin/out.action", "D:/a.html");
  System.out.println("已生成静态页面");
  }
}


以上就是利用httpClient的get方法来实现页面静态化,是不是很简单呢,大家都动手试下吧

相关文章推荐

php实现页面静态化

  • 2016年12月26日 14:26
  • 447KB
  • 下载

高性能 java web页面静态化使用httpclient生成静态页面

[java] view plaincopyprint? package com.wwxl.util;        import java.io.*;       ...

高性能 java web页面静态化使用httpclient生成静态页面

package com.wwxl.util; import java.io.*; import org.apache.commons.httpclient.*; import org.ap...

php 页面静态化

  • 2014年08月19日 15:46
  • 616KB
  • 下载

asp.net 动态页面静态化

  • 2008年09月04日 12:49
  • 5KB
  • 下载

springMVC freemarker实现页面静态化

最近在学习freemarker,这个模板技术已经很成熟,文档也很多。我研究了下利用它来实现页面静态化,静态化的好处你懂的,好了贴一下主要的代码。 首先是web.xml。 ...

JSP页面静态化最普遍用的三种

  • 2013年04月16日 17:00
  • 39KB
  • 下载

cms页面静态化源码

  • 2017年10月19日 13:07
  • 25.06MB
  • 下载

Smarty 实现页面静态化、生成HTML

为了减少数据库读取次数,某些内容不经常被更改的页面,比如文章详细页面需要做成HTML静态页面。 在使用Smarty的情况下,也可以实现页面静态化。下面先简单说一下使用Smarty时通常动态读取的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HttpClient4.5实现页面静态化
举报原因:
原因补充:

(最多只允许输入30个字)