当前位置: 首页 > 知识库问答 >
问题:

如何从对URL的RestTemplate调用中提取HTTP状态代码?

洪和风
2023-03-14

我使用resttemplate对我们的服务进行HTTP调用,它返回一个简单的JSON响应。我根本不需要解析那个JSON。我只需要把我从那次服务中得到的东西退回来。

RestTemplate restTemplate = new RestTemplate();

String response = restTemplate.getForObject(url, String.class);

return response;

我试图在访问URL后提取HTTP状态代码。如何从上面的代码中提取HTTP状态代码?我需要对我目前做的方式做任何改变吗?

更新:-

这是我已经尝试过的,我能够得到回复和状态代码以及。但是,我是否总是需要像下面这样设置HttpHeadersEntity对象呢?

    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或简单字符串。

共有1个答案

秦博达
2023-03-14

使用RESTTemplate#Exchange(..)方法返回ResponseEntity。这使您能够访问状态行和标题(显然还有正文)。

  • getStatusCode()
  • getheaders()
 类似资料:
  • 问题内容: 我正在使用HTTP调用我们的服务,该服务返回一个简单的JSON响应。我根本不需要解析该JSON。我只需要退还从该服务中获得的收益。 所以我将其映射到并以字符串形式返回实际值。 现在的问题是- 我想在点击URL后提取。如何从上述代码中提取HTTP状态代码?我是否需要以目前的方式对此进行任何更改? 更新:- 这是我尝试过的方法,我也可以获取响应和状态代码。但是我是否总是需要像下面这样设置和

  • 这可能看起来很愚蠢,但是我试图在Axios中请求失败时获取错误数据。 是否可以获取一个可能包含状态代码和内容的对象,而不是字符串?例如:

  • 我是Spring Reactive framework的新手&正在尝试将SpringBoot1.5.x代码转换为SpringBoot2.0。我需要从Spring5WebClient ClientResponse返回一些过滤后的响应头、主体和状态代码。我不想使用block()方法,因为它会将其转换为同步调用。我可以很容易地使用BodyTomono获得responsebody。此外,如果我只是返回Cl

  • 如何从的结果中获取HTTP状态?

  • 问题内容: 我看到了一些类似的问题(像这样),但是没有一个问题专门解决这个问题。 因此,Google 现在支持SPA,并且大多数网络浏览器都支持HTML5 pushState 。 我的AngularJS(但可能是任何JS东西)网站都使用URL来确定API路由。然后执行API调用,然后相应地呈现内容。 但是,由于 每个URL都 返回HTTP 200状态代码(包括example.com/get-fre