from suds.client import Client url = "http://218.90.174.179:50038/JmYfjzService/clientRegisterService?WSDL" test = Client(url) print(test) m=test.service.clientListen() print(m)
python调用webservice接口,这里我们使用suds包
如果没有直接cmd命令安装subs包
pip suds install
安装成功会有提示成功字样。
------------------------------
首先导入包
先查看一下webservice提供哪些类型及方法,之后我们才知道怎么调用,传哪些参数。
1
2
3
4
5
6
7
|
from
suds.client
import
Client
from
suds.transport.https
import
HttpAuthenticated
#webservice需要安全难证
t
=
HttpAuthenticated(username
=
'RFCATUSER'
,password
=
'q123456'
)
#安全验证所需用户,密码
url
=
"http://hqxt1.sinopec.com:50000/dir/wsdl?p=sa/65bd52bd76de381daf15736a37d13ab1"
test
=
Client(url,transport
=
t)
print
test
|
下面开始调用传参:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#coding=utf-8
#导入包
from
suds.client
import
Client
from
suds.transport.https
import
HttpAuthenticated
#webservice需要安全难证
#安全验证,获取service服务
t
=
HttpAuthenticated(username
=
'RFCATUSER'
,password
=
'q123456'
)
#安全验证所需用户,密码
url
=
"http://hqxt1.sinopec.com:50000/dir/wsdl?p=sa/65bd52bd76de381daf15736a37d13ab1"
test
=
Client(url,transport
=
t)
print
test
#用test.factory.create创建实例
request
=
test.factory.create(
'DT_IPM_SEND_PSBUDGET_REQ'
)
IPM_MSG_HEAD
=
test.factory.create(
'MSG_HEAD'
)
request.IS_MSG_HEAD
=
IPM_MSG_HEAD
IPM_MSG_HEAD.SENDTIME
=
'20170421102908'
IPM_MSG_HEAD.RECIVER
=
'ECC'
IPM_MSG_HEAD.SENDER
=
'IPM'
IPM_MSG_HEAD.INTERFACE_ID
=
'PROJECT_CREATE'
IPM_MSG_HEAD.SPRAS
=
None
IPM_MSG_HEAD.OPERATOR
=
None
IPM_MSG_HEAD.SYSTEM_ID
=
None
IPM_MSG_HEAD.PROXY_ID
=
None
IPM_MSG_HEAD.GUID
=
None
IPM_MSG_HEAD.MANDT
=
None
request.IV_BUKRS
=
"X060"
request.IV_TESTRUN
=
"X"
request.IT_PSBUDGET
=
[]
#用test.service.XXXXX去调用方法
m
=
test.service.SI_IPM_SEND_PSBUDGET_REQ_A_OUT(request)
print
IPM_MSG_HEAD
print
request
|
解决方法:
1、找到client.py,在安装suds的路径中
这里写图片描述
2、在client.py中添加,如下图
import logging
getLogger('suds.client').setLevel(logging.CRITICAL)