Perl SOAP :: Lite和请求对象的服务描述

jtv*_*v4k 6 perl wsdl soaplite

我正在使用Perl SOAP::Lite来访问由WSDL定义的远程Web服务.这意味着我有:

use strict;
use Data::Dumper;
use SOAP::Lite +trace => 'debug';

my $service = SOAP::Lite->service('http://path/wsdl');
Run Code Online (Sandbox Code Playgroud)

好到目前为止.问题是我需要访问HTTP::Request对象以发送自定义HTTP请求标头(我不是在谈论身份验证标头).看起来我可以在成功调用后访问请求对象:

my $result = $service->getClient('parameters');
print Dumper($service->transport->http_request);
Run Code Online (Sandbox Code Playgroud)

那会给我正确的HTTP::Request对象:

$VAR1 = bless( {
             '_content' => '',
             '_uri' => undef,
             '_headers' => bless( {}, 'HTTP::Headers' ),
             '_method' => undef
           }, 'HTTP::Request' );
Run Code Online (Sandbox Code Playgroud)

如果我在执行autoDispatch($service->getClient部件)之前尝试访问请求对象,则传输对象为空,我无法修改请求.如果我SOAP::Lite->proxy顺便说一句,似乎一切都会正常工作- 但这会破坏预先定义的服务定义的有用性.

任何想法,我想如何从服务定义访问请求对象,而不必先打电话?鸡蛋和鸡蛋问题真的......

谢谢!

小智 0

将处理程序添加到传输,请参阅 LWP::Debug 例如,请参阅 LWP::UserAgent 了解文档,或 perlmonks.org/?node_id=904166 例如