温馨提示×

温馨提示×

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

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

java HTTP响应怎么解析

发布时间:2026-10-01 13:38:18 来源:亿速云 阅读:89 作者:小樊 栏目:编程语言

在 Java 中解析 HTTP 响应,通常取决于你使用的是哪种方式发送请求。下面按常见场景给你说明,并给示例。


一、使用 HttpURLConnection(JDK 原生)

1. 发送请求并获取响应

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

int status = conn.getResponseCode();
BufferedReader reader = new BufferedReader(
        new InputStreamReader(conn.getInputStream(), "UTF-8"));

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

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

2. 解析 JSON 响应(示例)

import com.fasterxml.jackson.databind.ObjectMapper;

ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = mapper.readValue(response.toString(), Map.class);

二、使用 Apache HttpClient(常用)

1. 发送请求

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

CloseableHttpResponse response = client.execute(get);

2. 解析响应内容

HttpEntity entity = response.getEntity();
String result = EntityUtils.toString(entity, "UTF-8");

System.out.println(result);

3. 解析 JSON

ObjectMapper mapper = new ObjectMapper();
MyBean bean = mapper.readValue(result, MyBean.class);

三、使用 Spring RestTemplate

1. 直接解析为对象

RestTemplate restTemplate = new RestTemplate();
MyBean bean = restTemplate.getForObject(
        "https://example.com/api", MyBean.class);

2. 获取原始响应

ResponseEntity<String> response =
        restTemplate.getForEntity(url, String.class);
String body = response.getBody();

四、使用 Java 11+ HttpClient(推荐)

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

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

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

五、常见解析方式总结

响应类型 解析方式
字符串 response.body()
JSON Jackson / Gson
XML DOM / JAXB
文件 BodyHandlers.ofInputStream()

六、常见坑

  • 状态码 ≠ 200 时,可能要从 getErrorStream() 读错误
  • 注意 字符编码
  • 大响应避免一次性读入内存

如果你能告诉我:

  • 用的是哪种 HTTP 客户端
  • 响应是 JSON / XML / 文件
  • Java 版本

我可以给你更精确的代码。

向AI问一下细节

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

AI
助
手