具有基本身份验证的PHP Soap失败

时间:2018-06-25 14:57:06

标签: php soap basic-authentication

我有一小段PHP代码可以从业务应用程序中获取数据。该应用程序在IIS上运行,已启用基本身份验证。 该代码段如下:

$options = array(
    'login' => $APIUserName,         //  in format domain\\username
    'password' => $APIPassword,
    'cache_wsdl' => WSDL_CACHE_NONE
);

try {
    $client = new SoapClient($WSDLurl, $options);
}
catch (\SoapFault $e) 
{
    echo "<H1>ERROR CONNECTING TO WSDL</h1>\n";
    var_dump($e);
}
$client->__setLocation($APIurl);
$QueryProperty[]=array() // actual query removed
try {
    $Response=$client->RetrieveSet(array
        (
            Properties' => $QueryProperty
        )
    ); 
} 
catch (\SoapFault $e) 
{
    echo "<H1>ERROR FETCHING DATA</h1>\n";
    var_dump($e);
}

该代码返回未经授权的错误(在获取数据时)。 使用Wireshark,我看到使用基本身份验证可以初始请求(获取WSDL)运行良好,而使用相同的凭据进行数据检索却失败了(我看到来自应用程序网络服务器的401响应)。由于尚未启用HTTPS(尚未),因此我在Wireshark转储中看到了基本身份验证,在两个请求中都正确传递了用户名和密码。 使用SoapUI和基本身份验证可以为我提供完美的输出。 有人可以帮我吗?

0 个答案:

没有答案