我正在尝试使用我在此处找到的类对我们的Exchange服务器进行SOAP调用:
http://code.google.com/p/php-ews/
我编写了一些示例,从下面的基本示例开始,无论我尝试做什么,这总是返回null。
$ews = new ExchangeWebServices('exchange.example.com', 'user', 'password');
$request = new EWSType_FindFolderType();
$request->Traversal = EWSType_FolderQueryTraversalType::SHALLOW;
$request->FolderShape = new EWSType_FolderResponseShapeType();
$request->FolderShape->BaseShape = EWSType_DefaultShapeNamesType::ALL_PROPERTIES;
$request->IndexedPageFolderView = new EWSType_IndexedPageViewType();
$request->IndexedPageFolderView->BasePoint = 'Beginning';
$request->IndexedPageFolderView->Offset = 0;
$request->ParentFolderIds = new EWSType_NonEmptyArrayOfBaseFolderIdsType();
$request->ParentFolderIds->DistinguishedFolderId = new EWSType_DistinguishedFolderIdType();
$request->ParentFolderIds->DistinguishedFolderId->Id = EWSType_DistinguishedFolderIdNameType::INBOX;
$response = $ews->FindFolder($request);
var_dump($response);
有没有其他人遇到过这个错误,或者可以为我解释一下?
答案 0 :(得分:2)
您的要求看起来很好,它应该有效。您是否使用EWS服务器地址设置了services.wsdl? (有关更多信息,请参阅http://ewswrapper.lafiel.net/basic-info/working-with-ewswrapper/)
尝试在发送之前查看实际调用,并在解释之前查看响应。 要在NTMLSoapClinet.php中执行此操作,请在__doRequest()函数的顶部打印$ request并结束脚本执行(即die()),然后尝试打印$ response,因为它在__doRequest()函数和结束脚本执行中返回。这可以让您更深入地了解正在发生的事情。