Java 11引入了新的HttpClient API,可以用于发送HTTP请求。使用HttpClient发送请求时,可以设置请求头(header)和请求体(body)。
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpHeaders;
public class HttpClientExample {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://example.com"))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer token")
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
HttpHeaders headers = response.headers();
headers.map().forEach((k, v) -> System.out.println(k + ":" + v));
}
}
上述代码中,我们通过header()
方法设置了两个请求头,分别是"Content-Type"和"Authorization"。可以根据实际需求设置不同的请求头。
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpHeaders;
import java.net.http.HttpRequest.BodyPublishers;
public class HttpClientExample {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
String requestBody = "{\"name\":\"John\",\"age\":30}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://example.com"))
.header("Content-Type", "application/json")
.POST(BodyPublishers.ofString(requestBody))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
HttpHeaders headers = response.headers();
headers.map().forEach((k, v) -> System.out.println(k + ":" + v));
}
}
上述代码中,我们通过POST()
方法设置了请求体,并将请求体内容设置为一个JSON字符串。
总结:
Java 11的HttpClient可以通过设置header()
方法来发送请求头,通过POST()
方法和BodyPublishers
来发送请求体。这样可以灵活地发送带有请求头和请求体的HTTP请求。
推荐的腾讯云相关产品:腾讯云提供了丰富的云计算产品,包括云服务器、云数据库、云存储等。对于Java开发者,可以使用腾讯云的云服务器(CVM)来搭建Java环境,使用云数据库(CDB)来存储数据,使用云存储(COS)来存储文件等。具体产品介绍和链接如下:
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求和项目要求进行评估。