HttpClient使用高级-apache http client方式实现

本文详细介绍了如何自定义RequestHttp和RequestExecutor来实现Apache HttpClient的使用。通过RequestHttp生成HTTP请求客户端,包括获取httpClient和httpProxy,以及连接管理器的创建。重点讨论了连接池的优势,如降低延迟和支持更大并发。RequestExecutor用于执行HTTP请求,通过RequestHttp获取httpClient执行execute()。同时,文章还揭示了连接池的工作原理和释放连接的注意事项。
摘要由CSDN通过智能技术生成

1、获取接口定义【自定义RequestHttp】

      作用:生成(获取)http请求客户端

1.1获取httpClient    2.获取httpProxy

public interface RequestHttp<H, P> {

  /**
   * 返回httpClient.CloseableHttpClient是apache的一个类
   *
   * @return 返回httpClient
   */
  H getRequestHttpClient();

  /**
   * 返回httpProxy.HttpHost 是apache的一个类
   * @return 返回httpProxy
   */
  P getRequestHttpProxy();

  /**
   * 返回HttpType.
   *
   *JODD_HTTP 
    Jodd提供一个很轻量级、原生的的http客户端,使用起来很简单、方便。它能很方便的发送和接收http消息
 
    HttpClient
    Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议
 
    OK_HTTP
    一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso) 用于替代HttpUrlConnection和Apache HttpClient
 
   */
  HttpType getRequestType();

}

1.2、接口实现

属性:

  private CloseableHttpClient httpClient;
  private HttpHost httpProxy;

方法:

public void initHttp() {
    //首先、从内存中获取
    WxMpConfigStorage configStorage = this.getWxMpConfigStorage();
    ApacheHttpClientBuilder apacheHttpClientBuilder = configStorage.getApacheHttpClientBuilder();
    //其次、使用默认方式创建
    if (null == apacheHttpClientBuilder) {
      apacheHttpClientBuilder = DefaultApacheHttpClientBuilder.get();
    }
    //最后、设置代理
    apacheHttpClientBuilder.httpProxyHost(configStorage.getHttpProxyHost())
      .httpProxyPort(configStorage.getHttpProxyPort())
      .httpProxyUsername(configStorage.getHttpProxyUsername())
      .httpProxyPassword(configStorage.getHttpProxyPassword());

    if (configStorage.getHttpProxyHost() != null && configStorage.getHttpProxyPort() 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

良之才-小良

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值