在SOAP :: Lite请求perl中获取请求和响应XML

时间:2016-02-25 05:16:32

标签: xml perl soap

我正在使用SOAP :: Lite作为服务。现在我想要的是为soap请求保存请求和响应xml,但我无法获取请求和响应的xml。

SOAP

<xsl:variable name="xx" select="'40967.6424503935'"/>
<script type="text/javascript">
   time('<xsl:value-of select="$xx" />');
</script> 

对于此请求,我想保存请求和响应。请建议我可以在哪里获得所需的XML

1 个答案:

答案 0 :(得分:2)

一些谷歌搜索显示,SOAP :: Lite的底层用户代理(称为transport layer)是LWP :: UserAgent。您可以add handlers向发送或接收请求和响应对象的用户代理{。}}。

use strict;
use warnings;
use LWP::UserAgent;

my $ua = LWP::UserAgent->new;
$ua->add_handler( request_prepare => sub { my($req, $ua, $h) = @_; say $req->decoded_content; });
$ua->add_handler( response_done => sub { my($res, $ua, $h) = @_; say $res->decoded_content; });

$ua->get('http://www.example.org');

此代码将输出一个空的GET请求正文和一些HTML响应。

SOAP::Lite's documentation告诉我们如何获取传输客户端。

my $transport = $soap_object->transport; # or $client

现在该东西应该是LWP :: UserAgnt的子类,你应该能够在它上面设置处理程序。我没有任何SOAP东西可以尝试这个,但我过去已经做过了。

或者你也可以将SOAP :: Transport :: HTTP :: Client子类化,然后添加你自己的东西,将每个请求/响应对转储为精简缩进的XML。然后,您可以将该客户端用作替代品。