Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl中具有wsdl web服务身份验证的Soap客户端_Perl_Wsdl_Jax Ws_Soap Client - Fatal编程技术网

Perl中具有wsdl web服务身份验证的Soap客户端

Perl中具有wsdl web服务身份验证的Soap客户端,perl,wsdl,jax-ws,soap-client,Perl,Wsdl,Jax Ws,Soap Client,我正在尝试使用perl为JAX-WS web服务创建SOAP客户端,并提供身份验证。我能够在没有身份验证的情况下与服务通信。但是,当我尝试与实际的web服务(具有身份验证的)通信时,我会收到授权错误或soap xml未匹配错误。请尝试此代码 my $user="testUser"; my $password="testPassword"; my $service_url='https://api.example.com/services/soap.wsdl'; my $client = SO

我正在尝试使用perl为JAX-WS web服务创建SOAP客户端,并提供身份验证。我能够在没有身份验证的情况下与服务通信。但是,当我尝试与实际的web服务(具有身份验证的)通信时,我会收到授权错误或soap xml未匹配错误。

请尝试此代码

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";

我们需要更多的信息。请发布您的代码(删除密码,如果您不喜欢发布,请更改URL)。什么样的认证?您是否需要提前调用另一个服务来获取身份验证并将其添加到HTTP头中?您的SOAP消息中是否有身份验证容器?如我所说,请提供更多细节。看见