RestTemplate中交换方法的目的是什么?

问题描述

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

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

解决方法

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

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

参数Resource.class用于确定将响应主体从服务反序列化到哪个类。它定义了返回值的通用类型:ResponseEntity<Resource>

它返回的响应实体是仅类还是具有状态和标头的类?

我不确定“仅课堂”的意思。 ResponseEntityHttpEntity(实际上是class ResponseEntity<T> extends HttpEntity<T>)相似。 ResponseEntity类包含响应正文和标头以及响应的HTTP状态代码。