<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    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 方法。這和給普通函數傳遞參數并接收返回值一樣,但在背后卻隱藏著很多的工作。

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

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频