在 Java 中解析 HTTP 响应,通常取决于你使用的是哪种方式发送请求。下面按常见场景给你说明,并给示例。
HttpURLConnection(JDK 原生)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());
import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = mapper.readValue(response.toString(), Map.class);
CloseableHttpClient client = HttpClients.createDefault();
HttpGet get = new HttpGet("https://example.com/api");
CloseableHttpResponse response = client.execute(get);
HttpEntity entity = response.getEntity();
String result = EntityUtils.toString(entity, "UTF-8");
System.out.println(result);
ObjectMapper mapper = new ObjectMapper();
MyBean bean = mapper.readValue(result, MyBean.class);
RestTemplateRestTemplate restTemplate = new RestTemplate();
MyBean bean = restTemplate.getForObject(
"https://example.com/api", MyBean.class);
ResponseEntity<String> response =
restTemplate.getForEntity(url, String.class);
String body = response.getBody();
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() |
getErrorStream() 读错误如果你能告诉我:
我可以给你更精确的代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。