Python可以通过SOAP库来调用Java的Web Service(Webservice),具体步骤如下:
1. 生成Python客户端代码
使用suds-jurko库的工具(suds-jurko是suds库的加强版),生成Python客户端代码,示例如下:
pip install suds-jurko
python3 -m suds.wsdl url_of_wsdl -p package_name
其中,url_of_wsdl是WebService的WSDL地址,package_name是生成Python客户端代码所在的包的名称。
2. 调用Java的Web Service
生成Python客户端代码后,便可使用Python直接调用Java的Web Service。具体方法如下:
(1)首先导入生成的Python客户端代码所在的包和类:
from package_name import WebServiceName
from package_name import types
(2)连接Web Service(Webservice)并获得服务端对象:
client = WebServiceName(url_of_webservice)
其中,url_of_webservice是WebService服务地址。
(3)使用获得的服务端对象调用WebService服务端方法:
result = client.method_name(params)
其中,method_name是要调用的WebService服务端方法,params是要传递给该方法的参数。
示例说明1
以获取国内网站IP地址为例,其Web Service服务端方法如下:
public String[] getIpList(String domain);
该方法的功能是获取指定域名下的IP地址列表。因此,我们可以通过Python调用该Web Service,并获得国内网站百度的IP地址。示例代码如下:
from package_name import ws_dom
client = ws_dom.UrlConvertSoap(url_of_webservice)
result = client.getIpList('www.baidu.com')
print(result)
# ['220.181.38.148', '220.181.38.149']
其中,ws_dom是通过suds-jurko库生成的Python客户端代码所在的包名,UrlConvertSoap是要调用的Web Service服务端方法所在的类名。
示例说明2
查询手机归属地是另一个常见的Web Service服务。Web Service服务端方法如下:
public String getServiceResult(@WebParam(name = "mobileCode")String mobileCode, @WebParam(name = "userID")String userID);
该方法的功能是查询指定手机号码的归属地及运营商信息。我们可以通过Python调用该Web Service,并查询指定手机号码的相关信息。示例代码如下:
from package_name import mobile_code_wsdl
client = mobile_code_wsdl.MobileCodeWS(url_of_webservice)
result = client.getMobileCodeInfo('12345678901', '')
print(result)
# '手机号码:12345678901 省份:XXX 城市:XXX 区号:XXXX 邮编:XXXXXX 手机卡类型:XXX'
其中,mobile_code_wsdl是通过suds-jurko库生成的Python客户端代码所在的包名,MobileCodeWS是要调用的Web Service服务端方法所在的类名。
以上就是Python调用Java的Web Service的完整攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python调用java的Webservice示例 - Python技术站