1

我正在尝试使用我在此处找到的类对我们的 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);

有没有其他人遇到过这个错误,或者可以为我解释一下?

4

1 回答 1

2

您的请求看起来不错,应该可以。您是否使用您的 EWS 服务器地址设置了 services.wsdl?(有关更多信息,请参见http://ewswrapper.lafiel.net/basic-info/working-with-ewswrapper/ )

尝试在发送之前查看实际调用以及在解释之前查看响应。为此,请在 NTMLSoapClinet.php 中在 __doRequest() 函数顶部打印 $request 并结束脚本执行(即 die()),然后尝试打印 $response,因为它在 __doRequest() 函数中返回并结束脚本执行。这应该让您对正在发生的事情有更多的了解。

于 2011-09-26T06:55:12.467 回答