我在本地Windows服务器上安装了sharepoint,可以通过LAN获得。现在我在我的本地apache服务器上运行php中的web服务,如下所示:
<?php
//Authentication details
$authParams = array('login' => 'username', 'password' => 'password'); \
$listName = "TestList1";
$rowLimit = '150';
$wsdl = "http://www.blah.com/sharepoint/ListsWSDL.wsdl";
//Creating the SOAP client and initializing the GetListItems method parameters
$soapClient = new SoapClient($wsdl, $authParams);
$params = array('listName' => $listName, 'rowLimit' => $rowLimit);
//Calling the GetListItems Web Service
$rawXMLresponse = null;
try{
$rawXMLresponse = $soapClient->GetListItems($params)->GetListItemsResult->any;
}
catch(SoapFault $fault){
echo 'Fault code: '.$fault->faultcode;
echo 'Fault string: '.$fault->faultstring;
}
echo '<pre>' . $rawXMLresponse . '</pre>';
//Loading the XML result into parsable DOM elements
$dom = new DOMDocument();
$dom->loadXML($rawXMLresponse);
$results = $dom->getElementsByTagNameNS("#RowsetSchema", "*");
//Fetching the elements values. Specify more attributes as necessary
foreach($results as $result){
echo $result->getAttribute("ows_LinkTitle")."<br/>";
}
unset($soapClient);
?>
<body>
</body>
</html>
但是控制将捕获阻止,错误显示为:
Fault code: HTTPFault string: Unauthorized
为什么会这样?
答案 0 :(得分:0)
首先检查WSDL文件,服务器位置在wsdl文件中,位于底部。请确保此服务器位置正确。
请为您尝试访问的此sharepoint站点激活“基本身份验证”(在IIS6中)。
答案 1 :(得分:0)
您是否在IIS中启用了基本身份验证?
检查您的凭据。
尝试将IIS身份验证设置更改为Kerberos。