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

调用修补程序请求的Spring Resttemplate exchange方法

闻人凯泽
2023-03-14

我有一个带有spring框架的Java8应用程序。我们需要从应用程序中使用REST调用补丁操作。

代码片段如下:

import com.xyz.myobject.ResponseAdmission;
import com.xyz.myobject.RequestAdmission;

@Repository
public class AdmissionRepository {

   @Autowired
   private RestTemplate restTemplate;

   public ResponseObject updateAdmission(RequestAdmission requestAdmission, String admissionId) {

   UriBuilder uriBuilder =  UriBuilder.fromUri("https://admissionportal.com").path("admission").path("admissionId="+admissionId);

   HttpEntity<RequestAdmission> admissionEntity = new HttpEntity<>(requestAdmission, this.getHeaders);

   ResponseEntity<ResponseAdmission> responseEntity = this.restServiceESBSupport.exchange(uriBuilder.build(), HttpMethod.PATCH, admissionEntity , ResponseAdmission.class);

   return responseEntity.getBody();

}

public MultiValueMap<String, String> getHeaders() {
        MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
        headers.add("Accept", "application/xml");
        headers.add("Content-Type", "application/xml");
        return headers;
    }

}
ByteArrayHttpMessageConverter,
StringHttpMessageConverter,
ResourceHttpMessageConverter,
SourceHttpMessageConverter,
AllEncompassingFormHttpMessageConverter,
Jaxb2RootElementHttpMessageConverter,
MappingJackson2HttpMessageConverter
this.restTemplate.getMessageConverters().add(new Jaxb2RootElementHttpMessageConverter());

请指教。

共有1个答案

夏侯弘量
2023-03-14

您可以将自己的XML创建为字符串,并在您的请求中使用它,如下所示:

@Repository
public class AdmissionRepository {

   @Autowired
   private RestTemplate restTemplate;

   public ResponseObject updateAdmission(RequestAdmission requestAdmission, String admissionId) {

   UriBuilder uriBuilder =  UriBuilder.fromUri("https://admissionportal.com").path("admission").path("admissionId="+admissionId);
   String xmlString = // create an actual valid XML string with all the <tag>value</tag> and the whole structure.
   HttpEntity<String> admissionEntity = new HttpEntity<>(xmlString, this.getHeaders);

   ResponseEntity<ResponseAdmission> responseEntity = this.restServiceESBSupport.exchange(uriBuilder.build(), HttpMethod.PATCH, admissionEntity , ResponseAdmission.class);

   return responseEntity.getBody();

}
 类似资料:
  • 我对PersondTo有以下定义: 下面是一个示例记录: 现在,无名氏离婚了。所以我需要向这个URL发送补丁请求: 我想不出该怎么做。以下是我到目前为止所做的尝试: 以下是上面的问题: 1)由于我只设置了MaritalStatus,其他字段都将为null。因此,如果我打印出请求,它将如下所示: 请欣赏那些编写客户机应用程序的人提出的使用Spring的RESTTemplate使用Restful we

  • 我正在尝试进行http补丁请求,但我总是得到404错误,所以可能是我的连接设置不正确: 我收到404错误,未找到。当使用Postman执行相同的请求时,这是有效的…谢谢你的帮助。

  • 在我的API控制器类中有方法如下, 如下所示, 我从postman调用了API,并返回了它的请求。 我在Controller方法中放置了断点,但它没有命中。在我从方法参数breakpoin hit中删除了之后,没有返回。当我使用时,为什么它返回400?我如何从HTTP客户端调用这个控制器方法?。 我试过这个,它也会返回400个请求 我该怎么解决这个问题?请帮帮我。我删除了前面的问题,这才是我真正的

  • 尝试了HttpURLConnection的其他解决方案后,无效的HTTP方法:PATCH 我得到无效的HTTP方法:补丁异常与JAVA 7。更新JAVA不在选项中,所以我必须坚持使用解决方法。 我正在使用调用来调用这样的请求 < code>getHTTPVerb()返回字符串“POST”或“PATCH”。 使用补丁方法我遇到了问题。 在提到的问题中,我没有尝试过一种解决方案: < code>con

  • 当我尝试使用非标准的HTTP方法时,比如带有URLConnection的补丁: 我有个例外: 使用更高级别的API(如Jersey)会产生相同的错误。是否有解决办法来发出修补程序HTTP请求?

  • 当我试图在一个基于Spring MVC的应用程序上使用PayPal REST API更新一个账单计划的状态时,我遇到了一个ProtocolException。我的堆栈跟踪如下: 原因:java.net.ProtocolException:无效HTTP方法:PATCH at Java . net . httpurlconnection . setrequest method(httpurlconne