Я использую 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-> прокси
, но это лишает полезности заранее определенного определения службы.
Любые идеи, как я ' m предположим, что получить доступ к объекту запроса из определения службы без предварительного вызова? Проблема с курицей и яйцом на самом деле ...
Спасибо!