我正在尝试使用身份验证在perl中为JAX-WS Web服务创建SOAP客户端。我可以在没有身份验证的情况下与服务进行通信。但是当我尝试与实际的Web服务器(谁有身份验证)进行通信时,我收到授权错误或soap xml未格式化错误。
答案 0 :(得分:3)
试试此代码
my $user="testUser";
my $password="testPassword";
my $service_url='https://api.example.com/services/soap.wsdl';
my $client = SOAP::Lite->service($service_url);
$client->on_fault(
sub { # SOAP fault handler
my $soap = shift;
my $res = shift;
# Map faults to exceptions
if(ref($res) eq '') {
die($res);
} else {
die($res->faultstring);
}
return new SOAP::SOM;
}
);
my @headers = (
SOAP::Header->name('username')->value($user),
SOAP::Header->name('password')->value($password),
);
# make the call
my $result = $client->getVersion(@headers);
print $result . "\n\n";