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
  • 相关阅读:
    主库binlog(master-log)与从库relay-log的关系
    binlog_format不同模式下,对mysqlbinlog恢复的影响
    主从 binlog_format 设置关系
    Mysql5.7多源复制,过滤复制一段时间后增加复制一个库的实现方法
    mysql 5.7安装过程中,初始化的问题
    mysql复制过滤参数说明
    模块化发展
    Angular指令内容小结
    vue项目打包到腾讯云服务器全过程
    Centos7安装Mysql5.7
  • 原文地址:https://www.cnblogs.com/14061216chen/p/6868630.html
Copyright © 2011-2022 走看看