XML :: Compile :: SOAP - 将响应转换为哈希

时间:2014-01-22 19:05:53

标签: xml web-services perl soap

我是SOAP和XML :: Compile的新手,我可以google结束SOAP调用的大部分示例,但没有解释如何处理响应。

有没有一种简单的方法可以将SOAP响应转换为哈希?

这是我的代码

...

my ($response, $trace) = $call->($request);
my $content=$trace->response->decoded_content();
my $out=XML::Hash->new()->fromXMLStringtoHash($content)

但我收到以下错误:

在第4行第0列的文档元素之后的垃圾,在/ usr / lib / perl5的字节11177

查看从服务器返回的内容:

<肥皂:信封......

BA8

...< /皂:信封>

0

我不确定'ba8'如何进入响应,因为一旦删除它就会看起来像一个完整而有效的响应。

2 个答案:

答案 0 :(得分:0)

SOAP响应应该是一个哈希。 trace是一个允许您获取HTTP请求和/或响应的对象,但除了调试之外,您不需要查看它。

use Data::Dumper;

...
print Dumper $response;

答案 1 :(得分:0)

事实证明问题出在 Net :: HTTP 中的已知错误 - 我将它与 LWP :: UserAgent [以防万一]。