利用HttpClient 4.5实现http与https请求

  • 原创
  • |
  • 浏览:14709
  • |
  • 更新:
  • |
  • 标签:Java 

从HttpClient 4.0版本开始,包中的不少方法已过时(deprecated),过时的方法我们一般就不再使用了。现在我向大家介绍如何利用apache提供的HttpClient最新jar包实现http与https的请求

工具/原料

  • Intellij IDEA 14.1.4
  • HttpClient-4.5.jar等一系列的工具包

方法/步骤

  1. 1

    http实现get请求:

    首先设置全局的标准cookie策略

    RequestConfig config = RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD_STRICT).build();

    设置可关闭的httpclient

    CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(config).build();

    发送get请求

    利用HttpClient 4.5实现http与https请求
  2. 2

    http实劫夏现post请求:

    首先设置全局的标准cookie策略

    RequestConfig config = RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD_STRICT).build();

    设置可关闭的httpclient

    CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(config).build();

    对请求参数进行编码后再进行发送

    利用HttpClient 4.5实现http与https请求
  3. 3

    https网站一般情况下使用了安全系数较低的SHA-1签名,因此首先我们在调用SSL之前需要重写验证方法,取消检测SSL。压冲关

    利用HttpClient 4.5实现http与https请求
  4. 4

    https实现get请求施怕:

    创建可用Scheme

    Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()        .register("http", PlainConnectionSocketFactory.INSTANCE).register("https", socketFactory).build();

    创建ConnectionManager,添加Connection配置信息

    PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connectionManager)        .setDefaultRequestConfig(defaultRequestConfig).build();

    发送get请求

    利用HttpClient 4.5实现http与https请求
  5. 5

    https实现post请求:

    创建可用Scheme

    Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()       .register("http", PlainConnectionSocketFactory.INSTANCE).register("https", socketFactory).build();

    创建ConnectionManager,添加Connection配置信息

    PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connectionManager)       .setDefaultRequestConfig(defaultRequestConfig).build();

    对请求参数进行编码后再进行发送

    利用HttpClient 4.5实现http与https请求
    END
  6. 5
    本页面未经授权抓取自百度经验

注意事项

  • 调用上面的方法得到response对象后,利用EntityUtils.toString(response.getEntity())可获取到响应数据,同时不要忘了在使用完后关闭,一般我们直接用try(){}的方式自动关闭
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部
相关标签Java