【发布时间】:2011-01-11 03:35:29
【问题描述】:
我正在尝试使用来自 PHP 的 MS Exchange 2007 Web 服务,我的第一个障碍(当然)是在创建 SoapClient 对象时成功地对 wsdl 文件进行身份验证。
我可以通过 curl 获取 WSDL 文件,只需设置 HTTPAUTH 和 USERPWD:
$exch = curl_init($exch_url);
curl_setopt($exch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($exch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
curl_setopt($exch, CURLOPT_USERWD, $user.":".$pwd);
这非常容易。但是我没有在 SoapClient 中设置我的身份验证方法的选项(我知道)。我查看了 nu_soap,但我不喜欢它的一些核心方法,而且我认为我不需要一个完整的库来获得我知道可以从上面的代码中获得的一个功能。
我发现了两个不同(几乎相同)的示例,它们展示了如何为 Exchange WS 扩展 SoapClient 类,但它们都不起作用,也没有多大意义。我捡到的主要是它使用__dorequest方法在发送之前修改Soap请求,但是php.net上的文档不是很真实或直观,所以我不确定这种方法是否允许我只需使用 curl 进行身份验证并获取 WSDL。
任何人都可以演示一种清晰而简单的方法来首先通过 curl 进行身份验证并将标头用于未来的 SoapRequest(包括初始 WSDL 检索)或扩展类以便它使用上述代码进行请求?
【问题讨论】:
标签: php soap exchange-server