首页 > 解决方案 > 使用基本身份验证调用 SOAP Web 服务器上的方法总是返回 'faultstring' => 'Forbidden'

问题描述

我正在尝试使用 PHP 在 SOAP Web 服务器上调用一个方法,但我总是得到'faultstring' => 'Forbidden'响应。这是我的代码:

<?php
try {
    $wsdl = 'https://coll.leo-italy.eu/BioGatewayService/wsdl/Aia.BioGateway.Services.BioIZSUMGatewayService.svc?wsdl';
    $soap = new SoapClient($wsdl, array("trace" => 1, 
                                        "exceptions" => 0, 
                                        "login" => 'myusername', 
                                        "password" => 'mypassword', 
                                        "compression" => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP));
    $result = $soap->__call('SetAnalisiIZSUM', array());
    $result2 = $soap->__getLastResponseHeaders();

    var_export($result);
    var_export($result2);

} catch (SoapFault $exception) {
    print_r($exception);
} 

我试图打印最后一个响应标题,这就是我得到的:

'HTTP/1.1 403 Forbidden
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/10.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 17 Feb 2021 16:32:40 GMT
Content-Length: 3119
'

据我了解,这可能是基于我如何进行身份验证的问题。

我试图在 SOAPUI 中调用该方法并且它有效。所以用户名和密码都是正确的。

我究竟做错了什么?

标签: phpauthenticationsoapsoap-client

解决方案


推荐阅读