python http方式调用webservice接口

import requests
import xml.etree.ElementTree as ET
from requests.auth import HTTPBasicAuth
dd = requests.get(url="http://test",
                  auth=HTTPBasicAuth('test', 'test'))
tree = ET.fromstring(dd.text)
child = tree.getchildren()
for one in child:
    print(one.tag, ":", one.attrib)
    if "service" in one.tag:
        for children in one:
            print(children.tag, "----------", children.attrib)
            if "HTTP_Port" in children.attrib.values():
                for ba in children:
                    print(ba.attrib)
# 根据返回内容解析需要的url
bb = tree.find("{http://schemas.xmlsoap.org/wsdl/}service").findall("{http://schemas.xmlsoap.org/wsdl/}port")
for one in bb:
    if "HTTP_Port" in one.attrib.values():
        for one_b in one:
            print(one_b.attrib["location"])
url = "http://hxpiweb.chinaexpressair.com:58000/XISOAPAdapter/MessageServlet?senderParty=&senderService=PRD_BPM&receiverParty=&receiverService=&interface=SI_BPMAUTH_REQUEST&interfaceNamespace=com:ce:bm:BPMAUTH"
headers = {"Content-Type": "text/xml;charset=UTF-8"}
data = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" ' \
       'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="com.ce.BpmAuthService" ' \
       'xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/">' \
       '<SOAP-ENV:Header/>' \
       ' <ns1:Body>' \
       '<ns0:getAuth>' \
       '<arg0>%s</arg0>' \
       '</ns0:getAuth>' \
       '</ns1:Body>' \
       '</SOAP-ENV:Envelope>'
a = requests.post(url=url, auth=HTTPBasicAuth('Test', 'Test'), data=data % "CHENGKANG",
                  headers=headers)
print(a.text)
# 根据返回的xml解析需要的内容
tt = ET.fromstring(a.text)
for on in tt:
    for one in on:
        print(one.tag, "-----", one.attrib)
        for ont in one:
            print(ont.tag, "-----", ont.attrib)
ddj = tt.find("{http://schemas.xmlsoap.org/soap/envelope/}Body").find(
    "{com.ce.BpmAuthService}getAuthResponse").find("return").findall("authWork")
for one in ddj:
    print(one.text)

tt = '<?xml version="1.0" encoding="ISO-8859-1"?><note><to>George</to>' \
     '<from>John</from>' \
     '<heading>Reminder</heading>' \
     '<body>Don forget the meeting!</body></note>'
bb = ET.fromstring(tt)
ct = bb.find("body")
print(bb)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值