<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            12.3. 步入 SOAP

            調用遠程函數是 SOAP 的核心功能。有很多提供公開 SOAP 訪問的服務器提供用于展示的簡單功能。

            最受歡迎的 SOAP 公開訪問服務器是 http://www.xmethods.net/。這個例子使用了一個展示函數,可以根據美國郵政編碼返回當地氣溫。

            例 12.6. 獲得現在的氣溫

            >>> from SOAPpy import SOAPProxy            1
            >>> url = 'http://services.xmethods.net:80/soap/servlet/rpcrouter'
            >>> namespace = 'urn:xmethods-Temperature'  2
            >>> server = SOAPProxy(url, namespace)      3
            >>> server.getTemp('27502')                 4
            80.0
            
            1 你通過 SOAPProxy 這個代理 (proxy) 類訪問遠程 SOAP 服務器。這個代理處理了所有的 SOAP 內部事務,其中包括:根據函數名和參數列表創建 XML 請求文檔,并將這個請求文檔通過 HTTP 發送到遠程 SOAP 服務器;解析 XML 返回文檔,并創建本地的 Python 返回值。在下一節中你將看到這個 XML 文檔。
            2 每個 SOAP 服務都有一個 URL 用以處理所有請求。相同的 URL 可以用于所有的函數請求。每個特定服務則只有一個函數。但稍后你將看到的 Google API 卻有多個函數。這個服務的 URL 提供給所有函數分享。每個 SOAP 服務都有一個命名空間 (namespace),這個命名空間是由服務器任意命名的。這不過是為調用 SOAP 方法設置的。它使得服務器讓多個不相關的服務共享服務 URL 和路徑請求成為可能。這與 Python 中模塊相對于的關系類似。
            3 這里你創建了包含服務 URL 和服務命名空間的 SOAPProxy。此時還不會連接到 SOAP 服務器;僅僅是建立了一個本地 Python 對象。
            4 到此為止,如果你的設置完全正確,應該可以向調用本地函數一樣調用遠程 SOAP 方法。這和給普通函數傳遞參數并接收返回值一樣,但在背后卻隱藏著很多的工作。

            讓我們看一看這些背后的工作。

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线