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 = '' \
       '' \
       ' ' \
       '' \
       '%s' \
       '' \
       '' \
       ''
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 = 'George' \
     'John' \
     'Reminder' \
     'Don forget the meeting!'
bb = ET.fromstring(tt)
ct = bb.find("body")
print(bb)

你可能感兴趣的:(python)