如何使用Spring RestTemplate发送XML POST请求?

成员声音:

是否可以使用发送XML POST请求spring,例如RestTemplate

我想将以下xml发送到url localhost:8080/xml/availability

<AvailReq>
  <hotelid>123</hotelid>
</AvailReq>

我是否还想在每个请求上动态添加自定义http标头(!)。

我怎样才能在春季实现这一目标?

阿里·德加尼(Ali Dehghani):

首先,定义HTTP标题,如下所示:

HttpHeaders headers = new HttpHeaders();
headers.add("header_name", "header_value");

您可以HTTP使用此方法设置任何标题。对于众所周知的标题,您可以使用预定义的方法。例如,为了设置Content-Type标题:

headers.setContentType(MediaType.APPLICATION_XML);

然后定义一个HttpEntityRequestEntity准备您的请求对象:

HttpEntity<String> request = new HttpEntity<String>(body, headers);

如果您以某种方式可以访问该XML字符串,则可以使用HttpEntity<String>否则,您可以定义一个与之对应的POJO XML最后使用以下postFor...方法发送请求

ResponseEntity<String> response = restTemplate.postForEntity("http://localhost:8080/xml/availability", request, String.class);

在这里,我POSThttp://localhost:8080/xml/availability端点发送请求,并将HTTP响应主体转换为String

请注意,在上述示例中,new HttpEntity<String>(...)可以使用JDK7及更高版本代替 new HttpEntity<>(...)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章