温馨提示×

温馨提示×

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

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

java HTTP请求怎么发送

发布时间:2026-10-22 03:44:24 来源:亿速云 阅读:96 作者:小樊 栏目:编程语言

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


一、Java 11+ 原生方式(推荐,无需额外依赖)

Java 11 引入了 java.net.http.HttpClient,官方推荐。

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://jsonplaceholder.typicode.com/posts/1"))
                .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://jsonplaceholder.typicode.com/posts"))
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(
                "{\"title\":\"foo\",\"body\":\"bar\",\"userId\":1}"
        ))
        .build();

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

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

二、Apache HttpClient(老项目常用)

添加依赖(Maven)

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.14</version>
</dependency>

GET 示例

CloseableHttpClient client = HttpClients.createDefault();
HttpGet get = new HttpGet("https://jsonplaceholder.typicode.com/posts/1");

CloseableHttpResponse response = client.execute(get);
String result = EntityUtils.toString(response.getEntity());
System.out.println(result);

三、Spring 项目(最常用)

1️⃣ RestTemplate(老方式,仍可用)

RestTemplate restTemplate = new RestTemplate();
String result = restTemplate.getForObject(
        "https://jsonplaceholder.typicode.com/posts/1",
        String.class
);

2️⃣ WebClient(Spring WebFlux,推荐新项目)

WebClient client = WebClient.create();

String result = client.get()
        .uri("https://jsonplaceholder.typicode.com/posts/1")
        .retrieve()
        .bodyToMono(String.class)
        .block();

四、OkHttp(Android / 高性能场景)

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
        .url("https://jsonplaceholder.typicode.com/posts/1")
        .build();

Response response = client.newCall(request).execute();
System.out.println(response.body().string());

五、如何选择?

场景 推荐
Java 11+ 新项目 HttpClient
Spring 项目 RestTemplate / WebClient
Android OkHttp
老项目 Apache HttpClient

如果你有具体场景(比如带 token、文件上传、异步请求、Spring Boot),可以告诉我,我给你写完整示例。

向AI问一下细节

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

AI
助
手