以前使用過Java和Perl編寫SOAP服務(wù),還比較簡單的,,對應(yīng)的庫有Axis和SoapLite,。最近由于一個項目大部分使用Python作為開發(fā)語言,,考慮使用Python來編寫SOAP對外提供服務(wù)。眾所周知,,Python的動態(tài)和簡單是出了名的,,用它編寫SOAP服務(wù)也相當(dāng)簡單的,要比Java和Perl來得更輕松,。
使用Python編寫SOAP,,可以下載SOAPPy庫。
編寫SOAP服務(wù),,用于獲得服務(wù)器當(dāng)前的時間:
import sys sys.path.insert (1, ‘..‘) from SOAPpy import * import time def gettime(): return time.strftime(‘%Y-%m-%D %H:%M:%S‘, time.localtime()) namespace = ‘http:///‘ server = SOAPServer (("localhost", 9000)) server.registerKWFunction (gettime, namespace) try: while True: server.handle_request() except KeyboardInterrupt: pass
以下是訪問該SOAP服務(wù)的客戶端測試代碼:
import sys sys.path.insert (1, ‘..‘) from SOAPpy import * endpoint = "http://localhost:9000/" ns = "http:///" serv = SOAPProxy(endpoint, namespace=ns) print serv.gettime()
與其他語言相比,,這已經(jīng)簡化了許多,而且可以在不用編寫本地代碼的情況下就直接調(diào)用SOAP服務(wù)的方法,,這和訪問本地服務(wù)一樣,,非常的輕松。現(xiàn)在唯一擔(dān)心的是它的性能,,因為簡單一定會帶來其他的問題,。但對于目前而言,可以暫時不用考慮這個,。