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之后的特性
jdk11的HttpClient的更多相关文章
- 【开源】我和 JAP(JA Plus) 的故事
JA Plus 故事 程序员的故事如此简单之绕不过去的开源情结 我们准备做一件伟大的事,也可以说是一件真真正正普惠的事. 絮 是的,你没有看错,就是"絮"而非"序&quo ...
- JDK 之 HttpClient(jdk11)
HttpClient 简介 java.net.http.HttpClient 是 jdk11 中正式启用的一个 http 工具类(其实早在 jdk9 的时候就已经存在了,只是处于孵化期),官方寓意为想 ...
- 【新特性】JDK11
随着JDK11正式发布,带来了许多新的特性.本文主要介绍JDK11的部分新特性和新的API. 一.Local Var 在Lambda表达式中,可以使用var关键字来标识变量,变量类型由编译器自行推断. ...
- jdk11新特性
JDK 11主要特性一览 jdk11即将在9月25号发布正式版.确定的新特性包括以下17个 181 嵌套类可见性控制 309 动态文件常量 315 改进 Aarch64 Intrinsics 318 ...
- JDK10、JDK11、JDK12新特性
JDK10新特性 1.var声明变量 很多人抱怨Java是一种强类型,需要引入大量的样板代码.甚至在这些情况下,给定好变量名,通常很清楚发生了什么,明显类型声明往往被认为是不必要的.许多流行的编程语言 ...
- JDK11 | 第一篇 : JDK11 介绍
文章首发于公众号<程序员果果> 地址 : https://mp.weixin.qq.com/s/cOqRVlDgOqfDfKtkk1JGxw 一.简介 北京时间 2018年9 月 26 日 ...
- JDK HttpClient 单次请求的生命周期
HttpClient 单次请求的生命周期 目录 HttpClient 单次请求的生命周期 1. 简述 2. uml图 3. Http连接的建立.复用和降级 3.1 调用流程及连接的建立和复用 3.2 ...
- JDK HttpClient 多重请求-响应的处理
HttpClient 多重请求-响应的处理 目录 HttpClient 多重请求-响应的处理 1. 简述 2. 请求响应流程图 3. 用户请求的复制 4. 多重请求处理概览 5. 请求.响应过滤的执行 ...
- JDK17都出了,学点JDK11新特性
JDK8 - 转- JDK11 -转- JDK17 JShell(JDK9开始支持) G:\dowload\JDK\JDK11\jdk-11.0.2\bin ===> C:\Windows\Sy ...
- HttpClient的替代者 - RestTemplate
需要的包 ,除了Spring的基础包外还用到json的包,这里的数据传输使用json格式 客户端和服务端都用到一下的包 <!-- Spring --> <dependency> ...
随机推荐
- 2023NepCTF-RE部分题解
2023NepCTF-RE部分题解 九龙拉棺 过反调试 很容易发现 void __stdcall sub_401700() 里面有tea的痕迹 接出来发现只是前半部分 #include <std ...
- 高级SQL分析函数-窗口函数
摘要:本文由葡萄城技术团队于博客园原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 SQL语句中,聚合函数在统计业务数据结果时起到了重要作用 ...
- Android-JAR包的引用
一.JAR的定义 JAR文件(Java归档,英语:Java Archive)是一种软件包文件格式,以ZIP格式构建,以.jar为文件扩展名,通常用于聚合大量的Java类文件.相关的元数据和资源 ...
- Controller 层代码技巧
Controller 层代码技巧 前言 本篇主要要介绍的就是controller层的处理,一个完整的后端请求由4部分组成: 接口地址(也就是URL地址) 请求方式(一般就是get.post,当然还有p ...
- 2.4 PE结构:节表详细解析
节表(Section Table)是Windows PE/COFF格式的可执行文件中一个非常重要的数据结构,它记录了各个代码段.数据段.资源段.重定向表等在文件中的位置和大小信息,是操作系统加载文件时 ...
- WPF学习 - 自定义窗体(二)
上一篇文章写了如何创建自定义窗体:使用 WindowChrome 或者 WindowStyle="None"这两种方式.本文将讲述如何设置窗体的效果(以阴影效果为例),以及在效果模 ...
- Ionic3 与Electron制作桌面应用
Ionic3 与Electron制作桌面应用 原文:https://medium.com/@LohaniDamodar/lets-make-desktop-application-with-ionic ...
- 基于 Wiki.js 搭建知识库系统
前言 本文介绍如何使用 Wiki.js 搭建知识库系统. Wiki.js 官网 安装 前提准备 Wiki.js 几乎可以在任何支持 Node.js 的系统上运行.它可以运行在 Linux .Windo ...
- Solution -「YunoOI 2017」由乃的 OJ
Description Link. 起床困难综合症 上树. Solution 线段树维护,树剖上树. 具体题解有空再写,我要去睡觉了. #include<bits/stdc++.h> ty ...
- 【python】python开源代理ip池
一.前言 随着互联网的不断发展,越来越多的应用需要使用高匿代理IP才能访问目标网站,而代理IP作为一种能够隐藏本机真实IP地址的工具,在网络抓取.搜索引擎排名.广告投放.反爬虫等方面有着广泛的应用场景 ...