| 導航:起始頁 > Dive Into Python > SOAP Web 服務 > 步入 SOAP | << >> | ||||
深入 Python :Dive Into Python 中文版Python 從新手到專家 [Dip_5.4b_CPyUG_Release] |
|||||
調用遠程函數是 SOAP 的核心功能。有很多提供公開 SOAP 訪問的服務器提供用于展示的簡單功能。
最受歡迎的 SOAP 公開訪問服務器是 http://www.xmethods.net/。這個例子使用了一個展示函數,可以根據美國郵政編碼返回當地氣溫。
>>> from SOAPpy import SOAPProxy>>> url = 'http://services.xmethods.net:80/soap/servlet/rpcrouter' >>> namespace = 'urn:xmethods-Temperature'
>>> server = SOAPProxy(url, namespace)
>>> server.getTemp('27502')
80.0
| 你通過 SOAPProxy 這個代理 (proxy) 類訪問遠程 SOAP 服務器。這個代理處理了所有的 SOAP 內部事務,其中包括:根據函數名和參數列表創建 XML 請求文檔,并將這個請求文檔通過 HTTP 發送到遠程 SOAP 服務器;解析 XML 返回文檔,并創建本地的 Python 返回值。在下一節中你將看到這個 XML 文檔。 | |
| 每個 SOAP 服務都有一個 URL 用以處理所有請求。相同的 URL 可以用于所有的函數請求。每個特定服務則只有一個函數。但稍后你將看到的 Google API 卻有多個函數。這個服務的 URL 提供給所有函數分享。每個 SOAP 服務都有一個命名空間 (namespace),這個命名空間是由服務器任意命名的。這不過是為調用 SOAP 方法設置的。它使得服務器讓多個不相關的服務共享服務 URL 和路徑請求成為可能。這與 Python 中模塊相對于包的關系類似。 | |
| 這里你創建了包含服務 URL 和服務命名空間的 SOAPProxy。此時還不會連接到 SOAP 服務器;僅僅是建立了一個本地 Python 對象。 | |
| 到此為止,如果你的設置完全正確,應該可以向調用本地函數一樣調用遠程 SOAP 方法。這和給普通函數傳遞參數并接收返回值一樣,但在背后卻隱藏著很多的工作。 |
讓我們看一看這些背后的工作。
<< 安裝 SOAP 庫 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
SOAP 網絡服務查錯 >> |