我有一小段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和基本身份验证可以为我提供完美的输出。 有人可以帮我吗?