HttpClient_入门学习(二)

 

 RESPONSE HANDLER:

   HttpClient提供了一个处理http响应的方法,就是使用ResponseHandle这个接口,这个接口中有handlerResponse
 (HttpResponse),使用这个接口,可以不用关心Http连接管理器,无论请求失败还是异常,http都会将请求释放给Http管理器,



HttpClient接口:

  对与http请求执行过程来说,HttpClient接口对于http请求有着重要的作用,http并没有对http请求的过程,
    做的特别的限制的详细的规定,连接管理,状态管理,授权信息,和重定向这些功能都单独实现,这样用户就可以更
    简单的扩展这个接口的功能.....
    我的理解就是,HttpClient其实就是一个特殊的handler处理类,这个handler处理类处理着Http某一方面的
   东西,比如 重定向,认证处理,有关持久性连接和keyAlive持续时间的决策,这样我们就可以使用一些参数来代替这
  些默认的参数,从而实现各种功能....
 


   
 public void test_keepAlive(){
         ConnectionKeepAliveStrategy strategy = new DefaultConnectionKeepAliveStrategy(){
             @Override
             public long getKeepAliveDuration(HttpResponse response, HttpContext context) {
 
                 long keepAlive = super.getKeepAliveDuration(response, context);

                 if(keepAlive == -1){
                     keepAlive = 5000;
                 }
                 return keepAlive;
             }
         };
         CloseableHttpClient httpClient = HttpClients.custom().setKeepAliveStrategy(strategy).build();
     }


   HttpClient的安全性:
  HttpClient已经实现了线程安全,所以希望用户在创建httpClient实例时,也要支持多个请求的使用
  

  HttpClient的内存分配

    当CloseableHttpClient的实例不再被使用,或者它的作用范围即将失效,和它相关的连接必须被关闭,关闭它的
  方法为 close
  

  

 Http执行上下文:

    起初,http被设计成无状态的, 请求 --- 响应 ,然而,在实际中,我们想要在一些逻辑相关的请求,|响应中保存一些状态信息,
  HttpClient允许http连接在特定http上下文中执行,如果在持续的http请求中使用了同样的上下文,那么这个http将会被分配到一个
逻辑会话中,http上下文就类似于一个Map<String,Object>,它实际上就是任意值的集合,应用程序可以在http前填充上下文中的值,
也可以在请求执行后检查上下文,,,,,,,,
 HttpContent可以包含任意的对象,因次在多线程中并不安全,所以推荐每个线程都包含自己的上下文,Http在执行中,HttpClient会
  动封装以下属性到上下文中,


 


    
   我们通常使用HttpClientContent来简化 上下文交互的过程

 同一个会话中多个Http请求,我们应该使用同一个上下文,这样就会自动的在Http请求中传递状态和信息,下面是我在网上找的一个
的一个例子,在开头设置了参数,会被保存在上下文中,然后会应用到后续的http请求中


异常处理 : 

   HttpClient会抛出俩种异常,一种是IOException(sock超时,或者sock被重置),这种异常我们认为是可修复的,
 HttpException(表示Http失败,请求协议错误),这种异常是不可修复的......
   
   Http传输安全问题 :



  应用程序需要处理同一方法多次执行造成的影响,添加一个唯一性的id即可,问题
解决,我们需要明白,并不是HttpClient才会出现这样的情况. 其它浏览器应用也会遇到
方法幂不等的情况,




   就讲那么多啦,,,哈哈哈哈,撤退啦

猜你喜欢

转载自blog.csdn.net/qq_40794266/article/details/79232911
今日推荐