温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

HTTP协议java如何支持

发布时间:2026-09-10 23:03:59 来源:亿速云 阅读:99 作者:小樊 栏目:编程语言

在 Java 中支持 / 使用 HTTP 协议,常见方式有以下几种,按“从原生到现代”给你梳理:


一、原生方式(Java 标准库)

1️⃣ HttpURLConnection(JDK 自带,最基础)

适合简单请求,不依赖第三方库。

URL url = new URL("https://example.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);

int code = conn.getResponseCode();
BufferedReader br = new BufferedReader(
        new InputStreamReader(conn.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
    System.out.println(line);
}
conn.disconnect();

✅ 优点:零依赖
❌ 缺点:API 老旧、功能弱


2️⃣ Java 11+ HttpClient(官方推荐 ✅)

真正现代 HTTP 支持(HTTP/1.1、HTTP/2)

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://example.com"))
        .build();

HttpResponse<String> response =
        client.send(request, HttpResponse.BodyHandlers.ofString());

System.out.println(response.statusCode());
System.out.println(response.body());

✅ 支持:

  • HTTP/2
  • 异步请求
  • 超时、重定向控制

二、主流第三方框架(生产级)

3️⃣ Apache HttpClient

老牌、稳定、功能强

CloseableHttpClient client = HttpClients.createDefault();
HttpGet get = new HttpGet("https://example.com");
CloseableHttpResponse response = client.execute(get);

✅ 适合复杂企业项目
❌ 依赖较重


4️⃣ OkHttp(Android & 后端都常用)

简洁、性能好

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
        .url("https://example.com")
        .build();

Response response = client.newCall(request).execute();

5️⃣ Spring 中的 HTTP 支持

RestTemplate(老)

RestTemplate rest = new RestTemplate();
String result = rest.getForObject(url, String.class);

WebClient(推荐,响应式)

WebClient.create()
         .get()
         .uri("https://example.com")
         .retrieve()
         .bodyToMono(String.class)
         .block();

三、如何“支持 HTTP 服务”(不是请求,而是提供服务)

6️⃣ Java 写 HTTP 服务器

  • Spring Boot(最常用)
  • Java 原生 HTTP Server
HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
server.createContext("/hello", exchange -> {
    exchange.sendResponseHeaders(200, 0);
});
server.start();

四、总结建议

场景 推荐方案
Java 11+ 简单调用 HttpClient
老项目 HttpURLConnection
企业复杂 Apache HttpClient
Android OkHttp
Spring 项目 WebClient / RestTemplate
提供 HTTP 服务 Spring Boot

如果你说的是:

  • ✅ Java 调用 HTTP
  • ✅ Java 提供 HTTP 服务
  • ✅ HTTP/2 / HTTPS
  • ✅ 某个具体框架

可以告诉我,我可以直接给你完整示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手