Я использую Perl SOAP::Lite
для доступа к удаленному веб-сервису, определенному WSDL.Это означает, что у меня есть:
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
- но это сводит на нет полезность наличия предопределенного определения сервиса.
Любые идеи, как я предполагаю получить доступ к объекту запросаиз определения услуги без необходимости сначала звонить?Проблема с курицей и яйцом на самом деле ...
Спасибо!