Python请求webservice接口记录

本文仅记录Python调用webservice使用

Python调用webservice接口要使用suds包,直接使用pip 命令安装即可

pip install suds

以下是开发过程

先使用Python脚本查看webservice接口提供的方法

下面这段代码完全是抄袭网上的文章

from suds.client import Client
import json

url = 'http://xxx.xxx.xxx.xxx:port/PWebSvr.dll/wsdl/IWebSvrJK'
client = Client(url)
print(client)

执行上述命令会显示以下内容

Suds ( https://fedorahosted.org/suds/ )  version: 0.6

Service ( IWebSvrJKservice ) tns="http://tempuri.org/"
   Prefixes (0)
   Ports (1):
      (IWebSvrJKPort)
         Methods (3):
            GetInterFaceInfo()
            GetQueryInfoJSON(xs:string INJSONStr)
            GetXMLTextTest(xs:string InXml)
         Types (0):

其中的Methods提示有三种方法: GetInterFaceInfo\GetQueryInfoJSON\GetXMLTextTest
方法名后面的括号里应该就是方法入参

查看接口文档,了解接口入参

通过对接方提供的技术文档,了解请求接口的入参内容

{
	"QueryData": {
		"SHEDID": "0",
		"SysGuid": "XXXX--XXXXX-XXXX-XXXX",
		"RouteName": "QReal_Data",
		"Args": {
			"PageIndex": "1"
		}
	}
}

在技术文档中,上述参数以字典dict的形式存在,但是直接传参字典会报错
suds.TypeNotFound: Type not found: 'QueryData'
遂想到把字典转换成字符串

import json
input_param = json.dumps(dict_param)
result=client.service.GetQueryInfoJSON(input_param)
print(result)

执行测试,成功。
如此看来,方法GetQueryInfoJSON(xs:string INJSONStr) 后面括号里的内容已经提示入参的类型是string,格式是JSON。
完毕。


版权声明:本文为shenghaomail原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。