如何从放心的响应中删除xml标头

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从放心的响应中删除xml标头相关的知识,希望对你有一定的参考价值。

我正在尝试对返回xml的服务进行一些测试。问题是响应中出现xml内容和带有版本的xml标头。因此,当我尝试使用Matcher.hasXPath进行验证时,我会发现错误的结果,因为它应该只包含一个根节点。

试图找到一个配置(例如:SerenityRest.config()。getXmlConfig())但我不知道在哪里可以找到我的问题的具体文档。

actor.should(seeThatResponse(response -> response.body(Matchers.hasXPath(path)))
);

我要删除的内容:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
答案

如果响应XML包含2个根节点,则会获得org.xml.sax.SAXParseException。您要删除的内容是XML prolog,解析器通常会忽略它。

但您始终可以配置解析器。这是JAXB的一个例子:

marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);

以上是关于如何从放心的响应中删除xml标头的主要内容,如果未能解决你的问题,请参考以下文章

如何从响应标头中的内容类型中删除 charset=utf-8

如何从 Azure Functions 的 HTTP 响应中删除标准标头?

如何从片段中的 JSON 响应中的对象获取数据

如何修复“HTTP 标头中 CRLF 序列的不正确中和('HTTP 响应拆分')”

在内容 100% 完成之前从 HttpResponseMessage 读取标头

Apache Solr:从 solrconfig.xml 为 CORS 设置 HTTP 响应标头