温馨提示×

温馨提示×

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

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

java HTTP响应如何获取

发布时间:2026-10-22 04:04:26 来源:亿速云 阅读:95 作者:小樊 栏目:编程语言

在 Java 中,“获取 HTTP 响应”通常有两种常见场景:

  1. 作为客户端:发送 HTTP 请求并获取响应
  2. 作为服务端(如 Spring / Servlet):在接口中接收并处理 HTTP 响应

下面分别说明。


一、Java 作为 HTTP 客户端获取响应

1️⃣ 使用 Java 11+ HttpClient(推荐)

import java.net.URI;
import java.net.http.*;
import java.time.Duration;

public class HttpExample {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newBuilder()
                .connectTimeout(Duration.ofSeconds(10))
                .build();

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

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

        // 获取响应信息
        int statusCode = response.statusCode();
        String body = response.body();
        HttpHeaders headers = response.headers();

        System.out.println("状态码: " + statusCode);
        System.out.println("响应体: " + body);
        System.out.println("响应头: " + headers.map());
    }
}

✅ 优点:

  • 原生支持(Java 11+)
  • 支持异步、超时、HTTPS

2️⃣ 使用 HttpURLConnection(老方式)

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

int code = conn.getResponseCode();
BufferedReader reader =
        new BufferedReader(new InputStreamReader(conn.getInputStream()));

String line;
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null) {
    sb.append(line);
}
reader.close();

System.out.println(code);
System.out.println(sb.toString());

⚠️ 已不推荐新项目使用


3️⃣ 使用第三方库(更方便)

Apache HttpClient

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

String result = EntityUtils.toString(response.getEntity());
int code = response.getStatusLine().getStatusCode();

OkHttp

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

Response response = client.newCall(request).execute();
String body = response.body().string();

二、Java 作为服务端获取/返回 HTTP 响应

1️⃣ Spring Boot 中获取响应(Response)

@GetMapping("/test")
public ResponseEntity<String> test() {
    return ResponseEntity
            .status(200)
            .header("X-Custom", "abc")
            .body("success");
}

2️⃣ Servlet 中获取响应

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws IOException {
    resp.setStatus(200);
    resp.getWriter().write("hello");
}

三、常见获取内容总结

内容 获取方式
状态码 response.statusCode()
响应体 response.body()
响应头 response.headers()
Cookie response.headers().firstValue("Set-Cookie")

如果你能提供:

  • ✅ Java 版本
  • ✅ 是客户端还是服务端
  • ✅ 是否使用框架(Spring / OkHttp / Apache)

我可以给你更精确的示例。

向AI问一下细节

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

AI
助
手