最近接触到一个post请求,发送报文是 以xml格式的。如下:
准备用Python + Requests库来进行接口的代码自动化。 记录下 过程。
首先,postman请求,用fidder抓包,确定下请求报文:
看下请求报文具体。复制下,使用fiddler的 composer ,请求方式post,请求地址输入,下面Request Body 中粘贴复制的请求报文,点击execute,执行。执行成功,成功返回报文
2. 使用python代码
xml 格式的直接放置body,字符串承接,每一行最后增加\换行符,requests 的post请求,用data 来接。进行请求。即可请求成功。
(如果失败,post请求data的body进行一下utf-8转换。 re = requests.post(url=url,data=body.encoding("utf-8")) )
代码如下:
url = "http://xx.xx.xx.xxx:xxxxx/xxxxxx/Cmis2YcloansHttpChannel"
body = 'XXXXX;calculateService;'\
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'\
'<msgbody>'\
'<reqId>reqID</reqId>'\
'<reqTime>2019-08-19 17:16:15.123</reqTime>'\
'<serviceId>calculateService</serviceId>'\
'<channelId>YouZan</channelId>'\
'<subChannelId></subChannelId>'\
'<source></source>'\
'<ip>127.0.0.1</ip>'\
'<version></version>'\
'<BCH_CDE>branch_code</BCH_CDE>'\
'<loanNo>50000320120198253002</loanNo>'\
'<setlValDt>2020-12-08</setlValDt>'\
'<actvPayAmt>45.22</actvPayAmt>'\
'<trialDt>2020-12-08</trialDt>'\
'<paymMode>AT</paymMode>'\
'</msgbody>'\
re = requests.post(url=url,data=body)
print(re.text)
再当前文件中请求成功。
3.xml报文放置xml文件中,读取xml文件
一般请求报文放置 XML 文件中,pycharm 中新增xml 文件。文件中将xml请求报文放置。如下:
当前请求中,使用Open函数读取xml文件内容,请求代码
参考代码:
url = "http://xx.xx.xx.xxx:xxxxx/xxxxxx/Cmis2YcloansHttpChannel"
headers = {'Content-Type':'application/xml'}
with open('youzanLoanTrial.xml',encoding='utf-8') as fp:
body1 = fp.read()
re = requests.post(url=url,headers=headers,data=body1)
print(re.text)
代码成功运行,运行结果如下:
这是request请求,第四种比较常用的请求方式。
{'Content-Type': 'application/json'},
{'Content-Type': 'application/x-www-form-urlencoded'}
{'Content-Type':'multipart/form-data}
{'Content-Type':'text/xml}
Requests库post请求,四种常用请求方式:application/json,application/form,multipart/form-data,text/xml
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报