码迷,mamicode.com
首页 > 编程语言 > 详细

python 访问webservice

时间:2014-09-02 12:22:44      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:style   http   color   os   io   ar   问题   sp   on   

<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是借口文档提供的,还不能变~


python 访问webservice

标签:style   http   color   os   io   ar   问题   sp   on   

原文地址:http://blog.csdn.net/jacsice/article/details/39004269

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!