项目上又一个需求需要我去对接webservices的接口。以xml报文的形式去请求;
之前很少接触到xml,于是在网上找到了python的suds库;非常强大
首先是安装suds,直接pip就行了;python3的话需要pip install suds-jurko即可
首先引入suds
from suds.client import Client
url = "http://erptrn.cpihn.com:8002/webservices/SOAProvider/plsql/cux_soa_risk_pre_v3_pkg/?wsdl";
def sendmsg_to_workTicketbase(P_ORG_ID , P_WORK_DATE , P_END_DATE): client = Client(url) print(client)
此时你可以看到这个wsdl下所有的接口名字以及需要传入的参数,那么接下来就是调用了
def sendmsg_to_workTicketbase(P_ORG_ID , P_WORK_DATE , P_END_DATE): client = Client(url)
result = client.service.GET_SOA_WORK_TICKET_BASE(P_ORG_ID =P_ORG_ID , P_WORK_DATE=P_WORK_DATE, P_END_DATE = P_END_DATE) return result
此时可能会报错,也就是我提到的wsse验证权限。由于我这个wsdl是oracle直接生成的,oracle有两个权限,一个是修改数据库的权限,一个是数据获取权限,那么这个wsse就是用户获取数据权限。我们需要给我们的请求携带wss