簡體   English   中英

PHP的__dorequest方法用於SOAP的工作示例?

[英]Working example of PHP's __dorequest method for SOAP?

我試圖使用PHP的MS Exchange 2007 Web服務,並且在創建SoapClient對象時,我的第一個障礙(當然)已成功驗證到wsdl文件。

我只需設置HTTPAUTHUSERPWD即可通過curl來獲取WSDL文件:

   $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檢索),要么擴展該類,以便它使用上述代碼進行請求?

SoapClient接受SOAP_AUTHENTICATION_BASICSOAP_AUTHENTICATION_DIGEST作為身份驗證機制, 已經請求了NTLM身份驗證,如您在此處所見

在此之前,我從來不需要依賴NTLM auth方法,但經過一些Google搜索之后,我發現了一些有趣的文章, 但這似乎是使用PHP的SOAP進行NTLM身份驗證的最終解決方案

我希望這能解決您的問題。 =)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM