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

时间: 2024-10-31 05:59:52

python 访问webservice的相关文章

python访问webservice接口

公司的项目,需要访问WSDL定义的webservice服务.刚开始很蒙蔽,因为没有接触过java相关的开发,以为很复杂,其实不然. 废话不多说,直接上代码: # 需要安装zeep from requests import Session from zeep import Client from zeep.transports import Transport # 这里省略了一段代码 session = Session() # 这里是因为url是https,不然不需要transport sessi

Python调用Webservice、访问网页

昨天在调试Webservice的时候,由于不想写测试程序,就想用Python访问Webservice,结果还是相当的麻烦.远没有VSIDE用的方便 不得不说VS还是很强大的,人性化做的很好,不需要你看文档,统一的规范,统一的代码.我想还是VS走的更远吧,希望VS越来越强大. 用Python调试Webservice必须的安装第三方模块,这里推荐suds吧,随之问题来了,要用suds必须的有安装工具啊,so要学会安装,这里用的是 pip安装. pip安装包自行百度,然后进去CMD命令,Python

使用python访问网络上的数据

这两天看完了Course上面的: 使用 Python 访问网络数据 https://www.coursera.org/learn/python-network-data/ 写了一些作业,完成了一些作业.做些学习笔记以做备忘. 1.正则表达式 --- 虽然后面的课程没有怎么用到这个知识点,但是这个技能还是蛮好的. 附上课程中列出来的主要正则表达式的用法: Python Regular Expression Quick Guide ^ Matches the beginning of a line

用Python写WebService接口并且调用

一.用ladon框架封装Python为Webservice接口 另用soaplib实现请看:    http://www.jianshu.com/p/ad3c27d2a946 功能实现的同时,希望将接口开放给别人,而封装python接口的一个再简单不过的框架Ladon,而且提供不同的协议,包括SOAP和Json等格式的接口.本篇紧接着上上篇(Django部署)的.虽然很简单,但是官网的文档还是不够详细,下面介绍我配置的过程及遇到的问题. 1.安装Ladon包 使用Ladon框架,首先需要安装La

fedora python访问mysql

1 下载驱动库 http://sourceforge.net/projects/mysql-python/ 2, yum install mysql-dev* yum install python-dev* 3, python setup.py install fedora python访问mysql,布布扣,bubuko.com

ASP.NET MVC中使用ASP.NET AJAX异步访问WebService

使用过ASP.NET AJAX的朋友都知道,怎么通过ASP.NET AJAX在客户端访问WebService,其实在ASP.NET MVC中使用ASP.NET AJAX异步访问WebService 也没什么大的差别. 在ASP.NET应用程序里使用ASP.NET AJAX访问WebService通常都是通过ScriptMananger引入WebService生成客户端代理的方法,同时也可以使用Microsoft Ajax Library来完成.本文将介绍在ASP.NET MVC中使用ASP.NE

使用python获取webservice数据并输出到文件

上头要求设置TCP备案检查,给了个WEBSERVICE接口.查了2天,才确认还是python比较好用,我这水平也就写个脚本把数据导出,过滤检索还是用的shell.写此文备忘.WEBSERVICE接口脚本如下: #! /usr/bin/python #coding:utf-8 import codecs import suds def main(file_name, out_file): url = 'http://121.14.4.210:8088/icpautobj/ws/getIcp?wsd

【转】Spring的WebServiceTemplate访问WebService的方法及其本质原理

WebService客户端调用的本质就是将SAOP格式的XML通过通信协议发送到WebService的服务器端,然后接收服务器端返回的XML. 本文简单介绍一下如何通过Spring提供的WebServiceTemplate访问Webservice,WebServiceTemplate与调用webservice的客户端已及webservice服务器端示意图如下(图片来源于Spring in Action): 这里以SOAP over HTTP为例,开发步骤如下: 1,在Spring的配置文件中配置

C语言访问webservice小例子

近期做的一个项目中,需要访问webservice获取一些json格式的数据.返回的页面内容只是json格式的数据,并不像实际页面那么复杂.所以不想再引入工具库,直接用socket简单实现了. 以下代码并不是实际项目源码,是我摘取出来整理成的一个小例子分享给大家.代码本身很容易理解,但是需要一些socket编程和http协议基础. #include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #inc