如何在 SOAP 用戶端中提供 SOAP API 策略/擴充要求
P粉511896716
P粉511896716 2023-08-29 20:09:01
0
1
575
<p>我需要連接到一個soap api ...現在我已經使用過soap api幾次了,但是由於99%的api現在都處於休息狀態,我已經有好幾年沒有使用它們了</p> ; <p>當我使用soap客戶端呼叫api時,我得到</p> <pre class="brush:php;toolbar:false;">SOAP-ERROR: Parsing WSDL: Unknown required WSDL extension 'http://schemas.xmlsoap.org/ws/2004/09/policy'</ pre> <p>因此,當我在瀏覽器中開啟 wsdl 位址(登入/密碼保護)時,我可以在 xml 輸出中看到這些行</p> <pre class="brush:php;toolbar:false;"><wsdl:definitions xmlns:p1="urn:haixin:all2crm"xmlns:wsp="http://schemas.xmlsoap.org/ ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsdl= "http://schemas.xmlsoap.org/wsdl/" name="SI_USBPC_REQUEST" targetNamespace="urn:haixin:all2crm"> <wsdl:documentation/> <wsp:UsingPolicy wsdl:required="true"/> <wsp:Policy wsu:Id="OP_SI_USBPC_REQUEST"/></pre> <p>在我有的地方</p> <pre class="brush:php;toolbar:false;"><wsp:Policy> <wsp:PolicyReference URI="#OP_SI_USBPC_REQUEST"/> </wsp:Policy></pre> <p>當我搜尋此錯誤時,我只能在整個互聯網中找到1 個資源,答案是關閉策略要求,即: <code><wsp:UsingPolicy wsdl:required="false"/> </code> 但我不擁有api,所以當我搜尋策略名稱<code>OP_SI_USBPC_REQUEST</code> 時,這也是沒有問題的,我沒有得到任何結果,所以我猜測這是api 所有者設定的一些自訂名稱</p> <p>所以我的問題是我應該制定政策並將其附加到肥皂客戶端請求中嗎? 政策和擴展之間的聯繫是什麼,因為我收到擴展丟失錯誤,但如果我關閉政策要求,它就會消失</p> <p>可以從某處下載擴充嗎?格式是什麼...我應該將它們附加到肥皂客戶端請求中嗎? </p> <p>或者它是應該安裝在伺服器上的東西?如果我以某種方式添加擴展程序,錯誤就會消失,因為我已經將用戶名/密碼附加到 api 調用,或者這只是第一步,之後我應該處理策略要求嗎?</p> <p>順便說一句,我使用 php 呼叫 api,這是我的程式碼</p> <pre class="brush:php;toolbar:false;">$options = [ 'login' => 'mlogin', 'password' => 'mypassword', ]; $client = new \SoapClient("http://domain:port/dir/wsdl/?p=sa/92130e1ffa97338ba2d1fc026567031d" , $options );</pre> <p>如果我下載 xml 並關閉對本地文件的要求並在肥皂客戶端中使用該文件地址,我可以使用該文件與 api 對話嗎? (我的理解是xml不包含任何實際數據,它只是soap客戶端的接口/定義,我無法使用本地文件與在線api對話,或者也許我錯了?)</p>
P粉511896716
P粉511896716

全部回覆(1)
P粉916553895

訊息「未知所需的 WSDL 擴充」表示 SoapClient 在外部發現了一個元素 WSDL 命名空間的 wsdl:required 屬性設定為 true (正如您在此處看到的)。

因此,為了避免該錯誤,一種方法是將 wsdl:required 屬性設為 false

完全可以下載 WSDL 檔案、修改它並使用本機副本。只需確保使用 絕對路徑,如此處所示。

順便說一下,此上下文中的「策略」指的是 WS-Policy 規格。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!