java 不再免费,使用了 23 年的 Java 不再免费!(3)

下面这个例子用 POST 方式将数据发送到给定的 URL.与 BodyHandlers 类似,这里使用 BodyPublishers 来定义请求体中要发送的数据类型,如字符串、字节数组、文件或输入流:

var request = HttpRequest.newBuilder()

.uri(URI.create(“https://postman-echo.com/post”))

.header(“Content-Type”, “text/plain”)

.POST(HttpRequest.BodyPublishers.ofString(“Hi there!”))

.build();

var client = HttpClient.newHttpClient();

var response = client.send(request, HttpResponse.BodyHandlers.ofString());

System.out.println(response.statusCode()); // 200

下面的例子演示了通过 BASIC-AUTH 方式进行认证的方法:

var request = HttpRequest.newBuilder()

.uri(URI.create(“https://postman-echo.com/basic-auth”))

.build();

var client = HttpClient.newBuilder()

.authenticator(new Authenticator() {

@Override

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(“postman”, “password”.toCharArray());

}

})

.build();

var response = client.send(request, HttpResponse.BodyHandlers.ofString());

System.out.println(response.statusCode()); // 200

集合

像 List、Set 和 Map 等集合类都加入了新的方法。List.of 会根据给定的参数创建一个新的不可变的 list.List.copyOf 能创建 list 的不可变副本。

var list = List.of(“A”, “B”, “C”);

var copy = List.copyOf(list);

System.out.println(list == copy); // true

因为 list 已经是不可变的了,因此不需要实际创建 list 实例的副本,因此 list 和 copy 会指向同一个副本。但如果赋值一个可变的列表,copy 就会生成一个新的实例,以保证修改原始列表时不会产生副作用:

var list = new ArrayList();

var copy = List.copyOf(list);

System.out.println(list == copy); // false

在创建不可变的 map 时,不需要自行创建 map 的内容,只需要传递键和值即可:

var map = Map.of(“A”, 1, “B”, 2);

System.out.println(map); // {B=2, A=1}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值