【发布时间】:2014-06-05 23:29:54
【问题描述】:
我正在使用RestTemplate 对我们的服务进行 HTTP 调用,该服务返回一个简单的 JSON 响应。我根本不需要解析那个 JSON。我只需要退还我从该服务中获得的任何东西。
所以我将其映射到 String.class 并将实际的 JSON response 作为字符串返回。
RestTemplate restTemplate = new RestTemplate();
String response = restTemplate.getForObject(url, String.class);
return response;
现在的问题是——
我试图在点击 URL 后提取 HTTP Status codes。如何从上述代码中提取 HTTP 状态代码?我是否需要以我目前的方式对其进行任何更改?
更新:-
这是我尝试过的,我也能够得到响应和状态码。但是我是否总是需要像下面这样设置HttpHeaders 和Entity 对象?
RestTemplate restTemplate = new RestTemplate();
//and do I need this JSON media type for my use case?
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
//set my entity
HttpEntity<Object> entity = new HttpEntity<Object>(headers);
ResponseEntity<String> out = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
System.out.println(out.getBody());
System.out.println(out.getStatusCode());
几个问题 - 我是否需要 MediaType.APPLICATION_JSON,因为我只是调用返回响应的 url,它可以返回 JSON 或 XML 或简单字符串。
【问题讨论】:
-
很棒的教程在这里:baeldung.com/rest-template
-
@david,发生异常时如何获取状态码,比如超时和服务错误
标签: java url http-status-codes resttemplate