python post xml_python接口自动化(二十) 发xml格式post请求

前言

post请求相对于get请求多一个body部分,body部分常见的数据类型有以下四种(注意是常见的,并不是只有4种)

application/x-www-form-urlencoded

application/json

text/xml

multipart/form-data

本篇讲xml这种类型的body案例,如何用python去实现

1.打开fiddler抓包工具,使用python发送一个post请求

import requests

s=requests.session()

s.post("http://httpbin.org/post")

2.查看fiddler中显示该条请求;选中该请求,点击【Composer】,History中双击该请求,Request Body中添加如下内容;

huihui

8888

good

3.点击右上角的【Execute】就执行了。

4.查看fiddler中刚刚执行的post请求,body部分类型是xml格式,点击raw,看到body部分格式如下。

python实现

1.xml格式的body部分直接写成一个字符串类型就行了,遇到换行的字符串,在后面加个反斜杠(\)

2.body参数用data去接收传入,要是遇到编码问题报错,就对body部分encode下再传入;

import requests

s=requests.session()

bb='<?xml version=“1.0” encoding = “UTF-8”?>\

\

\

huihui\

8888\

good\

\

'

r=s.post("http://httpbin.org/post",data=bb.encode("utf-8"))

#print(r.text)#显示结果含有unicode码

print(r.text.encode('utf-8').decode('unicode_escape'))

3.运行结果

读取xml数据

1.xml格式的数据写到代码里面,不太直观,后期维护也不方便,可以把xml格式数据单独拿出来写到一个文件里,再用open函数去读取。

pycharm中新建xml方式,在当前.py脚本的目录,New——File——弹出New File窗口。

输入名字,点击【ok】,弹出的Register New File Type Association窗口中选择【XML】,点击【ok】,完事。

2.新建的xml中输入如下图内容

huihui

8888

good

3.使用open函数取读取xml内容,参考代码

import requests

s=requests.session()

with open("bbo_xml",encoding="utf-8") as fp:

body=fp.read()

print(body)

print() #换行

r=s.post("http://httpbin.org/post",data=body.encode("utf-8"))

print(r.text.encode('utf-8').decode('unicode_escape'))

4.运行结果

C:\Users\Administrator\AppData\Local\Programs\Python\Python37\python.exe D:/Python0811/OPMS/uppic/a.py

huihui

8888

good

{

"args": {},

"data": "<?xml version=“1.0” encoding = “UTF-8”?>

huihui

8888

good

",

"files": {},

"form": {},

"headers": {

"Accept": "*/*",

"Accept-Encoding": "gzip, deflate",

"Content-Length": "181",

"Host": "httpbin.org",

"User-Agent": "python-requests/2.22.0",

"X-Amzn-Trace-Id": "Root=1-5f2ac996-7439b920e4df2a90472d1230"

},

"json": null,

"origin": "183.95.51.5",

"url": "http://httpbin.org/post"

}

Process finished with exit code 0

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值