【本人秃顶程序员】浅析 jdk11 中 HttpClient 的使用

←←←←←←←←←←←← 快!点关注

前期准备

  • JDK 版本 : OpenJDK 11.0.1
  • IDE : idea 2018.3

HttpClient 简介

java.net.http.HttpClient 是 jdk11 中正式启用的一个 http 工具类(其实早在 jdk9 的时候就已经存在了,只是处于孵化期),官方寓意为想要取代 HttpURLConnection 和 Apache HttpClient 等比较古老的开发工具。

新增的 HttpClient 截止到目前(2019年3月)为止其实网络资料还比较少,笔者只是根据一些博文和官方 Demo 自己摸索了一下,做了下总结。

由于是 jdk11 中才正式使用的工具类,距离开发者还很遥远,所以对于源码笔者暂不打算深挖,浅浅的理解怎么使用就行

一、HttpClient

在 Apache HttpClient 中,一般会创建一个 HttpClient 对象来作为门面。java.net.http.HttpClient 的逻辑也差不多,只是创建方式更加时髦了:

//创建 builder
HttpClient.Builder builder = HttpClient.newBuilder();

//链式调用
HttpClient client = builder

                        //http 协议版本  1.1 或者 2
                        .version(HttpClient.Version.HTTP_2) //.version(HttpClient.Version.HTTP_1_1)

                        //连接超时时间,单位为毫秒
                        .connectTimeout(Duration.ofMillis(5000)) //.connectTimeout(Duration.ofMinutes(1))

                        //连接完成之后的转发策略
                        .followRedirects(HttpClient.Redirect.NEVER) //.followRedirects(HttpClient.Redirect.ALWAYS)

                        //指定线程池
                        .executor(Executors.newFixedThreadPool(5))

                        //认证,默认情况下 Authenticator.getDefault() 是 null 值,会报错
                        //.authenticator(Authenticator.getDefault())

                        //代理地址
                        //.proxy(ProxySelector.of(new InetSocketAddress("http://www.baidu.com", 8080)))

                        //缓存,默认情况下 CookieHandler.getDefault() 是 null 值,会报错
                    
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值