python 实现 soap 请求

2023-11-09

1. 什么是soap?

SOAP(Simple Object Access Protocol)是一种基于XML的通信协议,用于在网络上交换结构化的和可扩展的信息。它被广泛用于分布式系统中的应用程序之间的通信。

SOAP通过HTTP(或其他传输协议)在客户端和服务器之间传输XML格式的消息。它使用XML来定义消息的结构和内容,并使用SOAP协议规定了消息的格式、编码规则、错误处理和通信方式等。

SOAP的核心概念包括以下几个部分:

  • Envelope(信封):定义了消息的开始和结束,以及可选的命名空间声明。
  • Header(头部):包含了可选的消息头部信息,用于扩展SOAP协议。
  • Body(主体):包含了实际的消息内容,是SOAP消息的核心部分。
  • Fault(错误):用于表示在处理SOAP消息时发生的错误或异常。

SOAP具有以下特点:

  • 独立于平台和语言:SOAP消息使用标准的XML格式,使得它可以在不同的操作系统、编程语言和硬件平台上进行交互。
  • 可扩展性:SOAP允许通过自定义的消息头部信息扩展协议功能,使得它可以适应不同的应用需求。
  • 松耦合性:SOAP协议将消息的定义和通信方式进行了分离,使得系统的不同部分可以独立演化,提高了系统的灵活性和可扩展性。
  • 支持多种传输协议:SOAP消息可以通过多种传输协议(如HTTP、SMTP等)进行传输,使得它可以在不同的网络环境下使用。

SOAP被广泛应用于Web服务(Web Services)中,它提供了一种标准的、跨平台的、可互操作的方式来实现不同系统之间的通信和集成。通过使用SOAP,不同的应用程序可以通过网络进行数据交换和调用远程方法,实现分布式系统的协作和集成。

2. 什么是WSDL?

网络服务描述语言,Web Services Description Language)是一门基于 XML 的语言,用于描述 Web Services 以及如何对它们进行访问。
简单的说,它就是一个Web Services的使用说明书。来看一个实例:
http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl 这是一个查询电话号码的接口描述

3. Python使用SOAP协议

安装第三方库

python2
pip install suds

python3
pip install suds-py3

程序调用

from suds.client import Client

client = Client('http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl')
print(client.service.getMobileCodeInfo('13581855347',''))

可以解析成字典对象
安装第三方库

pip install xmltodict
from suds.client import Client

client = Client('http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl')
response = client.service.getMobileCodeInfo('13581855347','')
# 将响应数据转换为字典对象
response_dict = xmltodict.parse(str(response))
print(response_dict)
# 打印请求的XML内容
request_xml = client.last_sent()
print(request_xml)

注:Client的参数必须是以wsdl结尾,不然会出错。

例如你拿到的接口是:http://xx.xxx.com/XingHeAreaService.asmx
你实例化的时候应该是
client = Client(‘http://xx.xxx.com/XingHeAreaService.asmx?wsdl’)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 实现 soap 请求 的相关文章

  • Django 代理模型的继承和多态性

    我正在开发一个我没有启动的 Django 项目 我面临着一个问题遗产 我有一个大模型 在示例中简化 称为MyModel这应该代表不同种类的物品 的所有实例对象MyModel应该具有相同的字段 但方法的行为根据项目类型的不同而有很大差异 到目
  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • 在 python 程序中合并第三方库的最佳实践是什么?

    下午好 我正在为我的工作编写一个中小型Python程序 该任务需要我使用 Excel 库xlwt and xlrd 以及一个用于查询 Oracle 数据库的库 称为CX Oracle 我正在通过版本控制系统 即CVS 开发该项目 我想知道围
  • 将数据从 python pandas 数据框导出或写入 MS Access 表

    我正在尝试将数据从 python pandas 数据框导出到现有的 MS Access 表 我想用已更新的数据替换 MS Access 表 在 python 中 我尝试使用 pandas to sql 但收到错误消息 我觉得很奇怪 使用 p
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • 使用 on_bad_lines 将 pandas.read_csv 中的无效行写入文件

    我有一个 CSV 文件 我正在使用 Python 来解析该文件 我发现文件中的某些行具有不同的列数 001 Snow Jon 19801201 002 Crom Jake 19920103 003 Wise Frank 19880303 l
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 如何使用 OpencV 从 Firebase 读取图像?

    有没有使用 OpenCV 从 Firebase 读取图像的想法 或者我必须先下载图片 然后从本地文件夹执行 cv imread 功能 有什么办法我可以使用cv imread link of picture from firebase 您可以
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 无法在 Python 3 中导入 cProfile

    我试图将 cProfile 模块导入 Python 3 3 0 但出现以下错误 Traceback most recent call last File
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 如何在 Python 中追加到 JSON 文件?

    我有一个 JSON 文件 其中包含 67790 1 kwh 319 4 现在我创建一个字典a dict我需要将其附加到 JSON 文件中 我尝试了这段代码 with open DATA FILENAME a as f json obj js
  • 解释 Python 中的数字范围

    在 Pylons Web 应用程序中 我需要获取一个字符串 例如 关于如何做到这一点有什么建议吗 我是 Python 新手 我还没有找到任何可以帮助解决此类问题的东西 该列表将是 1 2 3 45 46 48 49 50 51 77 使用
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • c语言程序设计

    一 c语言主要特点 1 语法设计不 太严格 软件程序自由度大 2 对变量的类型使用比较灵活 如整型和字符型数据可以通用 3 c语言具有高级语言的功能和低级语言的很多功能 可以用来编写系统软件 4 编译系统简洁 易移植等特点 例如 inclu
  • 360云盘会不会停止服务器,360云盘能否继续使用啊?

    2017 10 10 03 56 14 除非你已购买了企业云盘只要交了费就可以使用了 可用原云盘帐号登录 把原云盘内的数据一键导入企业云盘 全部 2017 10 10 03 56 14 2017 10 10 03 56 14 完善个人资料
  • Redis单机最大并发量

    redis单机最大并发量 布隆过滤器 多级缓存 客户端缓存 应用层缓存 Expires和Cache Control的区别 Nginx缓存管理 服务层缓存 进程内缓存 进程外缓存 缓存数据一致性问题的解决 引入多级缓存设计的时刻 Redis的
  • sentinelsat包介绍

    这次主要介绍sentinelsat包 包括查询条件和相关的API等 主要记录自己学习过程 首先我们需要知道欧空局ESA的数据 因为考虑数据存储等问题 会将sentinel数据从在线存档中删除 对于长期存档的数据 会出现offline情况 在
  • 编程常用英语词汇

    按字母索引 A 开头 B 开头 C 开头 D 开头 E 开头 F 开头 G 开头 H 开头 I 开头 J 开头 K 开头 L 开头 M 开头 N 开头 O 开头 P 开头 Q 开头 R 开头 S 开头 T 开头 U 开头 V 开头 W 开头
  • PHP preg_replace() 正则替换所有符合条件的字符串

    PHP preg replace 正则替换 与Javascript 正则替换不同 PHP preg replace 默认就是替换所有符号匹配条件的元素 需要我们用程序处理的数据并不总是预先以数据库思维设计的 或者说是无法用数据库的结构去存储
  • Flutter 修改默认生成的 minSdkVersion

    Flutter 修改默认生成的 minSdkVersion 问题 flutter pub get 会自动生成 android 目录 但是如果要修改 build gradle 文件里面的内容 需要每次都要手动改一下 很麻烦 解决办法 修改 f
  • 大数据毕设项目 opencv 图像识别 指纹识别 - python

    文章目录 0 前言 1 课题背景 2 效果展示 3 具体实现 3 1 图像对比过滤 3 2 图像二值化 3 3 图像侵蚀细化 3 4 图像增强 3 5 特征点检测 4 OpenCV 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升
  • 【动手学习pytorch笔记】33.Attention实现

    Attention实现 import math import torch from torch import nn from d2l import torch as d2l 带掩码的softmax 有些query是不应该看到后面的key的
  • glslViewer 介绍 (001)

    GitHub patriciogonzalezvivo glslViewer Console based GLSL Sandbox for 2D 3D shaders 起个头先 把官网的windows安装过程 step by step 化
  • unity实现mmd功能(跳舞)

    将pmx模型转化为fbx模型 将fbx模型导入 在对应的Inspector面板上的四个勾选打勾并Apply应用一下 在接下来弹出的界面中将vmd动画拖入到对应的Object栏中并点击生成相应动画的模型 vmd动画的制作 新建一个动画状态机控
  • 1.Windows环境配置

    1 做逆向Linux系统比Windows系统问题少的原因 Windows版本种类过多 Windows使用的编码不一样 2 电脑系统版本 原版Windows10即可 运行winver可查看系统版本 推荐版本 Windows10 专业版 20H
  • Hibernate-validator数据验证

    前言 数据效验工作在开发工作中 是非常重要的 保证数据的正确性 可靠性 安全性 不仅在前端进行效验 还要在后台继续进行效验 前端做验证只是为了用户体验 比如控制按钮的显示隐藏 单页应用的路由跳转等等 后端才是最终的保障 总之 一切用户的输入
  • opencv4.6 报错 error: ‘cv::xfeatures2d::SIFT’ has not been declared

    opencv4 6报错error cv xfeatures2d SIFT has not been declared SIFT 已经由 xfeatures2d 移至 主仓库 cv xfeatures2d SIFT create 改为 cv
  • 如何用一行 Python 代码实现并行

    前言 Python 在程序并行化方面多少有些声名狼藉 撇开技术上的问题 例如线程的实现和 GIL 我觉得错误的教学指导才是主要问 题 常见的经典 Python 多线程 多进程教程多显得偏 重 而且往往隔靴搔痒 没有深入探讨日常工作中最有用的
  • widows家庭版没有Hyper-v的解决方式

    首先这个是我在安装docker的时候遇到的问题 下面记录一下 复制下面代码到一个文本文件中去 然后修改后缀名为cmd然后运行即可 pushd dp0 dir b SystemRoot servicing Packages Hyper V m
  • jQuery.extend 函数详解

    转载自 http www cnblogs com RascallySnake archive 2010 05 07 1729563 html jQuery extend 函数详解 jQuery 的 extend 扩展方法 jQuery 的扩
  • 【构建ML驱动的应用程序】第 1 章 :从产品目标到 ML 框架

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 光耦电路

    光电耦合器 opticalcoupler 英文缩写为OC 亦称光电隔离器或光耦合器 简称光耦 它是以光为媒介来传输电信号的器件 通常把发光器 红外线发光二极管LED 与受光器 光敏半导体管 封装在同一管壳内 当输入端加电信号时发光二极管发出
  • python 实现 soap 请求

    1 什么是soap SOAP Simple Object Access Protocol 是一种基于XML的通信协议 用于在网络上交换结构化的和可扩展的信息 它被广泛用于分布式系统中的应用程序之间的通信 SOAP通过HTTP 或其他传输协议