Perl を使用SOAP::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
、それでは事前定義されたサービス定義の有用性が失われます。
最初に呼び出しを行うことなく、サービス定義からリクエストオブジェクトにアクセスする方法はありますか? 鶏と卵の問題は本当に...
ありがとう!