是否可以使用 spring
发送 XML
POST
请求,例如 RestTemplate
?
我想将以下xml发送到url localhost:8080/xml/availability
<AvailReq>
<hotelid>123</hotelid>
</AvailReq>
我还想在每个请求上动态添加自定义 http header (!)。
我如何使用 spring 实现这一点?
最佳答案
首先,定义你的HTTP
标题,如下所示:
HttpHeaders headers = new HttpHeaders();
headers.add("header_name", "header_value");
您可以设置任何HTTP
用这种方法 header 。对于众所周知的标题,您可以使用预定义的方法。例如,为了设置 Content-Type
标题:
headers.setContentType(MediaType.APPLICATION_XML);
然后定义一个HttpEntity
或 RequestEntity
准备您的请求对象:
HttpEntity<String> request = new HttpEntity<String>(body, headers);
如果您以某种方式可以访问 XML
字符串,可以使用 HttpEntity<String>
.否则你可以定义一个对应于 XML
的 POJO .最后使用 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>(...)
可以be replaced with new HttpEntity<>(...)
使用 JDK7 及更高版本。
关于java - 如何使用 Spring RestTemplate 发送 XML POST 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35461148/