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

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


    
    
        
            Srikrung

可以看出信息符合 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格式:
Python接口基础: WSDL 文件(soap )照样可以用requests进行post_第1张图片

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

Python接口基础: WSDL 文件(soap )照样可以用requests进行post_第2张图片

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

转化为的格式为 :

payload = "\n    \n    \n        \n            ***\n            \n                10200\n          "

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

你可能感兴趣的:(杂谈,WSDL,SOAP,wsdl,post)