在现代软件开发中,Java HTTP客户端 是一个非常重要的工具。无论是调用第三方API、获取网页内容,还是与微服务通信,都需要使用HTTP客户端来发送请求并接收响应。本教程将从零开始,帮助你掌握如何在Java中使用内置的HTTP客户端发送GET、POST等常见请求。
在Java 11之前,开发者通常依赖第三方库(如Apache HttpClient或OkHttp)来处理HTTP请求。但从Java 11开始,Java标准库内置了全新的 java.net.http.HttpClient 类,功能强大且无需额外依赖,非常适合进行 Java网络编程。
要使用Java内置的HTTP客户端,请确保你的JDK版本为 11或更高。你可以通过以下命令检查版本:
java -version 下面是一个使用Java内置HttpClient发送GET请求的完整示例:
import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.time.Duration;public class SimpleHttpGet { public static void main(String[] args) throws Exception { // 创建HttpClient实例 HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build(); // 构建HttpRequest HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://jsonplaceholder.typicode.com/posts/1")) .timeout(Duration.ofSeconds(30)) .header("Accept", "application/json") .GET() // 默认就是GET,可省略 .build(); // 发送请求并获取响应 HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); // 打印状态码和响应体 System.out.println("状态码: " + response.statusCode()); System.out.println("响应内容:\n" + response.body()); }} 这段代码展示了如何使用 HttpClient教程 中最基础的GET请求操作。我们设置了连接超时、请求头,并指定了返回体为字符串类型。
很多时候我们需要向服务器提交数据,比如用户注册、订单创建等。这时就需要使用POST请求。以下是如何发送带JSON体的POST请求:
import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.time.Duration;public class SimpleHttpPost { public static void main(String[] args) throws Exception { String jsonBody = "{\"title\": \"Hello\", \"body\": \"This is a test post\", \"userId\": 1}"; HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://jsonplaceholder.typicode.com/posts")) .header("Content-Type", "application/json") .header("Accept", "application/json") .timeout(Duration.ofSeconds(30)) .POST(HttpRequest.BodyPublishers.ofString(jsonBody)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println("状态码: " + response.statusCode()); System.out.println("响应内容:\n" + response.body()); }} 除了同步方式(send),HttpClient还支持异步请求(sendAsync),适用于高并发场景:
client.sendAsync(request, HttpResponse.BodyHandlers.ofString()) .thenApply(HttpResponse::body) .thenAccept(System.out::println) .join(); 通过本篇 Java发送HTTP请求 教程,你应该已经掌握了如何使用Java 11+内置的HttpClient进行基本的网络通信。它简洁、高效,且无需引入外部依赖,是现代Java开发中处理HTTP请求的首选方案。
记住,无论你是构建Web爬虫、调用RESTful API,还是开发微服务客户端,掌握 Java HTTP客户端 都是必不可少的技能。快去动手试试吧!
提示:所有示例均可在本地IDE(如IntelliJ IDEA或Eclipse)中直接运行,前提是JDK版本 ≥ 11。
本文由主机测评网于2025-12-22发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20251211609.html