温馨提示×

温馨提示×

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

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

java如何发送HTTP

发布时间:2026-07-15 21:48:23 来源:亿速云 阅读:100 作者:小樊 栏目:编程语言

在 Java 中发送 HTTP 请求有多种方式,下面按常用程度Java 版本给你介绍几种主流做法,并附上示例。


✅ 一、Java 11+(推荐):java.net.http.HttpClient

这是 官方标准、最推荐 的方式,支持 HTTP/1.1 和 HTTP/2。

1️⃣ 发送 GET 请求

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class HttpExample {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newHttpClient();

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

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

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

2️⃣ 发送 POST 请求(JSON)

HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://example.com/api"))
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(
                "{\"name\":\"Tom\",\"age\":18}"))
        .build();

✅ 二、Java 8 及以前:HttpURLConnection

老项目常见,但 API 比较繁琐。

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpOldExample {
    public static void main(String[] args) throws Exception {
        URL url = new URL("https://example.com");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();

        conn.setRequestMethod("GET");

        BufferedReader reader =
                new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
    }
}

✅ 三、第三方库(更强大、更方便)

1️⃣ Apache HttpClient(企业常用)

<dependency>
  <groupId>org.apache.httpcomponents.client5</groupId>
  <artifactId>httpclient5</artifactId>
  <version>5.3</version>
</dependency>
CloseableHttpClient client = HttpClients.createDefault();
HttpGet get = new HttpGet("https://example.com");
CloseableHttpResponse response = client.execute(get);

2️⃣ OkHttp(Android / 高性能)

OkHttpClient client = new OkHttpClient();

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

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

✅ 四、如何选择?

场景 推荐
Java 11+ HttpClient
老项目 HttpURLConnection
复杂 HTTP / 重试 / 连接池 Apache HttpClient
Android OkHttp

✅ 五、常见需求示例

设置超时

HttpClient client = HttpClient.newBuilder()
        .connectTimeout(Duration.ofSeconds(5))
        .build();

异步请求

client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
      .thenAccept(res -> System.out.println(res.body()));

如果你愿意,可以告诉我:

  • ✅ Java 版本
  • ✅ GET / POST / PUT / DELETE
  • ✅ 是否需要 JSON / Header / 文件上传

我可以直接给你一段可直接用的代码

向AI问一下细节

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

AI