python 訪问webservice

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">如今最流行的就是suds了,可是里面仍然有很多bug未修复。也好像没有人更新了</span>
import sys
from suds.client import Client

sys.setrecursionlimit(1500)

test_url = 'http://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl'
url = 'http://localhost/IdentifierService.svc?

wsdl' client = Client(url, cache=None)

suds确实简单易用

可是执行后有错误,其它的wsdl地址却没有问题

google中还发现suds与.net平台似乎有一点的不兼容

而这个wsdl就是.net平台的,万恶的.net

不能说常见吧,可是我第一次用就碰到了 runtimeerror: maximum recursion depth exceeded

意思就是递归过深,python默认的递归深度是1000

你能够通过改动深度值,可是无济于事

import sys

sys.setrecursionlimit(1500)


最后仅仅好换工具。用了SOAPy,SOAPpy,pysimplesoap,soaplib真是快用一遍了

最后仅仅有ZSI可用

from ZSI import ServiceProxy
url = 'http://localhost/IdentifierService.svc?wsdl'

proxy = ServiceProxy.ServiceProxy(url)#是两个ServiceProxy
person = "{\
    'IDNumber': '4123412412423',\
    'Name': '张三'\
}"

account = "{\
    'UserName': 'admin',\
    'Password': '123456'\
}"
response = proxy.ExactCheckByJson(request=person, cred=account)
当中ExactCheckJson是webservice提供的服务

并且參数必须是这个形式的,假设直接上參数,就会报ypeError: Not supporting SOAPENC:Arrays or XSD:List的错误

然后我的request跟cred是借口文档提供的。还不能变~


转载于:https://www.cnblogs.com/yutingliuyl/p/6715660.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值