之前转过一篇基于HttpClient的Java模拟HTTP请求,使用的第三方jar文件,这次升级JDK11之后模拟HTTP请求不需要再导入第三方jar文件了,官方扩展了java.net包,所有的HTTP请求相关类均位于java.net.http包内,示例代码如下:
package xyz.lsm1998.test;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
/**
* 作者:刘时明
* 日期:2018/10/30
* 时间:15:36
* 说明:
*/
public class HttpTest
{
public static void main(String[] args) throws Exception
{
// 建立一个请求对象,指定uri和请求类型(默认为GET)
var request = HttpRequest.newBuilder()
.uri(URI.create("http://www.lsm1998.xyz"))
.GET()
.build();
// 建立HttpClient对象
var client = HttpClient.newHttpClient();
// 模拟一次同步请求
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
// 模拟一次异步请求
HttpResponse<String> response2=client.sendAsync(request,HttpResponse.BodyHandlers.ofString()).get();
System.out.println(response2.body());
}
}
ps:注意环境为JDK11