我是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'如何进入响应,因为一旦删除它就会看起来像一个完整而有效的响应。
答案 0 :(得分:0)
SOAP响应应该是一个哈希。 trace是一个允许您获取HTTP请求和/或响应的对象,但除了调试之外,您不需要查看它。
use Data::Dumper;
...
print Dumper $response;
答案 1 :(得分:0)
事实证明问题出在 Net :: HTTP 中的已知错误 - 我将它与 LWP :: UserAgent [以防万一]。