zoukankan      html  css  js  c++  java
  • Python 访问soap服务

    使用库:subs

    soap服务信息:

    网址:http://mobile.bjmemc.com.cn/AirService/Service.asmx

    功能:使用其中的GetData服务获取北京各个地点的空气情况

    GetData服务的请求示例:

    POST /AirService/Service.asmx HTTP/1.1
    Host: mobile.bjmemc.com.cn
    Content-Type: text/xml; charset=utf-8
    Content-Length: length
    SOAPAction: "http://tempuri.org/GetData"
    
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Header>
        <MySoapHeader xmlns="http://tempuri.org/">
          <UserName>string</UserName>
          <PassWord>string</PassWord>
        </MySoapHeader>
      </soap:Header>
      <soap:Body>
        <GetData xmlns="http://tempuri.org/">
          <DevID>string</DevID>
          <DevType>string</DevType>
        </GetData>
      </soap:Body>
    </soap:Envelope>

    Python代码的实现:

    # -*- coding:UTF-8 -*-
    from suds.client import Client
    
    def getAirInfo():
    
        url = 'http://mobile.bjmemc.com.cn/AirService/Service.asmx?wsdl'   #一般都是网址后面加个?wsdl,你可以打开看一下,是一堆xml文件
        client = Client(url)   #创建一个客户端
    
        header = client.factory.create('MySoapHeader')   #请求头,名字按他给的xml
        header.UserName = '******'               #请求头里的用户名和密码,这是个付费服务
        header.PassWord = '******'
        client.set_options(soapheaders=[header,])      #将封装好的请求头加入到client中
    
        result = client.service.GetData()           #调用GetData()服务,获取返回数据,返回一个text文本
        print result
  • 相关阅读:
    串口基本知识
    20180826
    20180819
    自动化测试
    说话有重点 测试思维
    学习C语言,在软件测试中如何用?
    PC能替代服务器吗?
    服务器与普通电脑的区别?
    k8s 回滚应用
    k8s Service
  • 原文地址:https://www.cnblogs.com/14061216chen/p/6868630.html
Copyright © 2011-2022 走看看