当前位置: 首页 > news >正文

jdk11的HttpClient

我们都知道在jdk11之前都在用okhttp或者org.apache.httpcomponents 
其实早在jdk9的时候这个方案就在孵化中

上面的截图来自openjdk的官网,注:openjdk是个开源项目,不存在侵权现象

这是openjdk的官网:JEP 110: HTTP/2 Client (Incubator) (openjdk.org)

具体出在jdk11 稳定版里面,可以说11版本成型,接下来我举个小例子

package com.example;
import java.net.*;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;public class Main {public static void main(String[] args) throws Exception {HttpClient client= HttpClient.newBuilder().followRedirects(HttpClient.Redirect.ALWAYS).build();HttpRequest request = HttpRequest.newBuilder().uri(URI.create("https://baidu.com/")).timeout(Duration.ofMinutes(2)).GET().build();client.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenApply(HttpResponse::body).thenAccept(System.out::println);HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.statusCode());System.out.println(response.body());}}

这个例子很简单,就是现在HttpRequest里面构造一下uri ,timeout,Get请求,通过build方法进行构造,不得不说,现在私有化构造器的同时一般都采用建造者模式,又或者为了单一对象考虑,比如说自己类里面new了一个对象,然后搞一个方法return出去,我们还可以通过反射来new 这种类的对象

接下来就是创建 HttpClient的创建,唯一要注意的点是要允许重定向

client 发送请求,send有两个参数,一个是request  另一个是HttpResponse参数类型,并做了转换

后面就是拿到反应结果集,输出就行了

这里我想开一个新的专栏,专门讲jdk8之后的特性

http://www.lryc.cn/news/204704.html

相关文章:

  • Redis的优势
  • C++ string 类的其他操作
  • structs2 重构成SpringBoot架构
  • 【MATLAB源码-第56期】基于WOA白鲸优化算法和PSO粒子群优化算法的三维路径规划对比。
  • 【WinForm详细教程一】WinForm中的窗体、Label、TextBox及Button控件、RadioButton和CheckBox、ListBox
  • 【SwiftUI模块】0060、SwiftUI基于Firebase搭建一个类似InstagramApp 3/7部分-搭建TabBar
  • PureFlash云原生存储部署方法
  • SqueezeNet 一维,二维网络复现 pytorch 小白易懂版
  • Java 数据结构
  • python sqlalchemy(ORM)- 02 表关系
  • Http长连接同一个socket多个请求和响应如何保证一一对应?
  • Standford Compiler Course Assignment 2
  • 基于Java的校园论坛管理系统设计与实现(源码+lw+部署文档+讲解等)
  • 谈谈你对Spring的理解
  • 系统架构师考试易混淆知识点总结
  • 反射的作用( 越过泛型检查 和 可以使用反射保存所有对象的具体信息 )
  • 前端开发实践:vue中用qrcode库将超链接生成二维码图片
  • 数据库连接池有什么用?它有哪些关键参数?
  • Android Settings解析
  • Spring+spring mvc+mybatis整合的框架
  • 02-2、PyCharm中文乱码的三处解决方法
  • Axi接口的DDR3:参数,时序,握手机制
  • 浏览器标签上添加icon图标;html引用ico文件
  • 深入解析i++和++i的区别及性能影响
  • 2023年中国酒类新零售行业发展概况分析:线上线下渠道趋向深度融合[图]
  • 交通 | 实现可泛化性:机器学习求解VRP
  • php使用sqlServer
  • H3C SecParh堡垒机 get_detail_view.php 任意用户登录漏洞
  • python爬虫涨姿势板块
  • 软件设计原则-里氏替换原则讲解以及代码示例