如何使用Spring RestTemplate发送XML POST请求?
是否可以使用发送XML
POST
请求spring
,例如RestTemplate
?
我想将以下xml发送到url localhost:8080/xml/availability
<AvailReq> <hotelid>123</hotelid>
</AvailReq>
我是否还想在每个请求上动态添加自定义http标头(!)。
我怎样才能在春季实现这一目标?
回答:
首先,定义HTTP
标题,如下所示:
HttpHeaders headers = new HttpHeaders();headers.add("header_name", "header_value");
您可以HTTP
使用此方法设置任何标题。对于众所周知的标题,您可以使用预定义的方法。例如,为了设置Content-Type
标题:
headers.setContentType(MediaType.APPLICATION_XML);
然后定义一个HttpEntity
或RequestEntity
准备您的请求对象:
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);
在这里,我POST
向http://localhost:8080/xml/availability
端点发送请求,并将HTTP
响应主体转换为String
。
请注意,以上示例中的示例new
HttpEntity<String>(...)可以使用JDK7及更高版本替换 new HttpEntity<>(...)
。
以上是 如何使用Spring RestTemplate发送XML POST请求? 的全部内容, 来源链接: utcz.com/qa/435312.html