我正在使用 PerlSOAP::Lite
访问由 WSDL 定义的远程 Web 服务。这意味着我有:
use strict;
use Data::Dumper;
use SOAP::Lite +trace => 'debug';
my $service = SOAP::Lite->service('http://path/wsdl');
到目前为止还好。问题是我需要访问HTTP::Request
对象以发送自定义 HTTP 请求标头(我不是在谈论身份验证标头)。看起来我可以在成功调用后访问请求对象:
my $result = $service->getClient('parameters');
print Dumper($service->transport->http_request);
这会给我正确的HTTP::Request
对象:
$VAR1 = bless( {
'_content' => '',
'_uri' => undef,
'_headers' => bless( {}, 'HTTP::Headers' ),
'_method' => undef
}, 'HTTP::Request' );
如果我在执行 autoDispatch(部分)之前尝试访问请求对象$service->getClient
,则传输对象为空,我无法修改请求。如果我这样做,似乎一切都会正常工作SOAP::Lite->proxy
——但这破坏了拥有预定义服务定义的帮助。
任何想法我想如何从服务定义访问请求对象而无需先拨打电话?鸡和蛋的问题真的...
谢谢!