Python接口基础: WSDL 文件(soap )照样可以用requests进行post

昨天 遇到一个难题,我接到一个webservice API 接口进行批量出单任务,造数据 方便测试report.
XML 内容如下 :

<soapenv:Envelope xmlns:soapenv="http://p/elope/" 
  xmlns:ser="http://service.segst.com/">
    <soapenv:Header/>
    <soapenv:Body>
        <ser:SendPolicy>
            <username>Srikrung</username>

可以看出信息符合 soap 协议的wsdl文件 :

SOAP 构建模块
一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:

必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
可选的 Header 元素,包含头部信息
必需的 Body 元素,包含所有的调用和响应信息

我的思路是 WSDL 文件,既然你是个XML文件是可以 封装在http body里进行post,

  1. 保存在一个XML 文件里,然后用 read() 函数进行读取:
with open(filepath,‘rw‘’) as f:
        a=f.read()

2.读取之后 我直接放在body 里进行post, 很不幸直接报错, 我再去 查看XML 文件,结果报解析异常
如图:

在这里插入图片描述

无论如何怎么调都没有用. 问题出现了还得去解决呀, 我去百度搜索 解决方法,一直找不到,

  1. 干脆就不找了, 我用postman 去post, 结果大吃一惊,果然 运行成功, 同样都是XML postman居然成功了

这个问题一直困扰了我,如果哪位大仙知道为什么,麻烦告诉我.

xml格式:
在这里插入图片描述

  1. 运行成功了我就好办了, 我直接 点击code 转化为 python requests , 这个功能小伙伴一定要学会,接口必备呀.

在这里插入图片描述

我们再用转化后的格式 发post ,就可以成功了 .

转化为的格式为 :

payload = "<soapenv:Envelope xmlns:soapenv=\"http://schmas.xmlpe/\" \n  xmlns:ser=\"http://servi.com/\">\n    <soapenv:Header/>\n    <soapenv:Body>\n        <ser:SendPolicy>\n            <username>***</username>\n            \n                <CusPostCode>10200</CusPostCode>\n          "

完美解决了问题, 下一章我总结下, wsdl ,soap, http ,xml 直接的联系,把知识点串联起来.

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值