当前位置: 首页 > 面试题库 >

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

陈康胜
2023-03-14
问题内容

是否可以使用发送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);

然后定义一个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<>(...)



 类似资料:
  • 问题内容: 我正在尝试向SOAP Web服务发送请求。我阅读了本教程并准备了以下代码。但是,我将向多个SOAP Web服务发送不同的请求,而本教程只关注一个请求。如何使用发送SOAP请求? WebServiceTemplate 问题答案: 您可以使用以下代码,而无需在xml文件中定义任何内容。

  • 问题内容: 我不想使用文件,但是只有django才需要发出POST请求。 就像发送请求一样。 问题答案: 结合使用urllib2和urllib中的方法即可解决问题。这是我使用这两种方法发布数据的方式: 是用于打开URL的方法。 将参数转换为百分比编码的字符串。

  • 问题内容: 我有一台具有通过https运行的rest API的服务器。我想在我的应用程序中调用此rest api,该应用程序在不同的端口中运行,但是由于这是通过https进行的,因此 我有2个文件pulic_key.pem和private_key可用于验证证书。使用golang发送休假请求时如何验证证书?我正在发送休息请求。这就是我现在忽略证书的操作。 问题答案: 您需要将证书的CA添加到传输中,

  • 问题内容: 这些组合似乎无效。 头由于某种原因未设置。 问题答案: 只需直接发送xml字节即可: 输出量

  • 问题内容: 我正在尝试使用Alamofire快速发布尸体的发布请求。 我的json主体看起来像: 我正在尝试使 NSDictionnary看起来像: 我使用Alamofire的请求如下所示: 该请求有一个错误,我相信问题出在字典列表上,因为如果我在没有列表的情况下发出请求,它就可以正常工作,所以有什么主意吗? 我已经尝试过建议的解决方案,但是我遇到了同样的问题: 问题答案: 你近了 参数字典格式看

  • 问题内容: 有人知道使用JSON 的正确方法吗? 我从服务器收到响应。它可以使用Chrome浏览器。 问题答案: 对于 Guzzle <= 4: 这是原始的发布请求,因此将JSON放入正文即可解决问题