1.什么是webservice
我觉得很多概念都说的过于复杂,大概可以理解成一种面向服务编程(SOA)的架构,不依赖于语言,不依赖于平台,可以实现不同语言的相互调用。(主要使用xml描述)
比较典型的就是天气预报,不同系统,不同程序,可以通过中国天气网提供的接口来获取数据
webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。
2.安装
在安装suds的时候会提示No module named ‘client’,需要先安装client再安装suds
import client
ModuleNotFoundError: No module named 'client'
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
pip install client
pip install suds
运行代码
from suds.client import Client
def webserver():
url = 'http://www.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl'
client = Client(url)
print(client)
if __name__ == '__main__':
webserver()
报错1
解决方法,手动修改为正确的语法
报错2
from cookielib import CookieJar
ModuleNotFoundError: No module named 'cookielib'
报错3
NameError: name 'unicode' is not defined
解决方法:
Python2 的unicode 函数在 Python3 中被命名为 str。在 Python3 中使用 ·str 来代替 Python2 中的 unicode.
报错4
解决方法:
原语句为:from cStringIO import StringIO
报错:ModuleNotFoundError: No module named 'cStringIO'
原因为:Python2.x转Python3.x的问题
Python2.x的写法:import StringIO
Python3.x的写法:from io import StringIO
因为我的是Python3.6,故将原语句改为:from io import StringIO
报错5
解决方法:
ImportError: No module named urllib2
Python 3中urllib2用urllib.request替代
重点的重点
python安装3的版本这样安装会安装2的版本,重新安装pip install suds-jurko库可正常运行
以上代码可正常运行