【问题标题】:What is the purpose of the exchange method in the RestTemplate?RestTemplate 中的交换方法的目的是什么?
【发布时间】:2020-08-14 04:16:18
【问题描述】:

我目前正在向客户端发送资源,我正在使用已经完成的代码并且我正在修改它,该代码下面显示的一行我不明白。好吧,我知道我正在发送或发布资源,我知道此方法采用客户端的 url,例如在这种情况下采用 HTTP 请求的类型 POST,但我不明白为什么此方法采用 nService.getStringHttpEntityWithPayload( payLoad)和Resource.class?它返回的响应实体也是一个类还是一个具有状态和标题的类?

ResponseEntity<Resource> responseEntity = restTemplate.exchange(
                eURL,
                HttpMethod.POST,
                nService.getStringHttpEntityWithPayload(payLoad),
                Resource.class);

【问题讨论】:

  • 什么是nService
  • @George 它是一个具有方法 public HttpEntity getStringHttpEntityWithPayload(String payload) { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON);返回新的 HttpEntity(有效负载,标头); }

标签: java spring rest httprequest resttemplate


【解决方案1】:

为什么这个方法需要 nService.getStringHttpEntityWithPayload(payLoad) 和 Resource.class?

getStringHttpEntityWithPayload 方法返回一个HttpEntity,它由要发送到 URL 的正文和标头数据组成。该方法是通过添加内容类型标头来创建请求消息,让接收服务知道正文包含 JSON 数据。

参数Resource.class 用于确定将来自服务的响应体反序列化到哪个类中。它定义了返回值的泛型类型:ResponseEntity&lt;Resource&gt;

它返回的响应实体也是一个类还是一个具有状态和标题的类?

我不确定您所说的“仅限班级”是什么意思。 ResponseEntity 类似于HttpEntity(实际上是class ResponseEntity&lt;T&gt; extends HttpEntity&lt;T&gt;)。 ResponseEntity 类包含响应正文和标头,以及响应的 HTTP 状态代码。

【讨论】:

    猜你喜欢
    • 2021-10-19
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 2016-10-25
    • 2019-10-20
    • 1970-01-01
    • 2014-04-25
    • 2010-12-22
    相关资源
    最近更新 更多