当前位置: 首页 > 面试题库 >

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

宋博易
2023-03-14
问题内容

我正在使用RestTemplateHTTP调用我们的服务,该服务返回一个简单的JSON响应。我根本不需要解析该JSON。我只需要退还从该服务中获得的收益。

所以我将其映射到String.classJSON response以字符串形式返回实际值。

RestTemplate restTemplate = new RestTemplate();

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

return response;

现在的问题是-

我想HTTP Status codes在点击URL后提取。如何从上述代码中提取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或简单字符串。


问题答案:

使用RestTemplate#exchange(..)返回的方法ResponseEntity。这使您可以访问状态行和标题(显然还有正文)。



 类似资料:
  • 我使用对我们的服务进行HTTP调用,它返回一个简单的JSON响应。我根本不需要解析那个JSON。我只需要把我从那次服务中得到的东西退回来。 我试图在访问URL后提取。如何从上面的代码中提取HTTP状态代码?我需要对我目前做的方式做任何改变吗? 更新:- 这是我已经尝试过的,我能够得到回复和状态代码以及。但是,我是否总是需要像下面这样设置和对象呢? 几个问题-我需要吗?我只是调用url返回一个响应,

  • 这可能看起来很愚蠢,但是我试图在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