新版博客SEO优化基本完成,新老博客内容正在整合中,保证每篇文章高质量。 SiteMap RSS Github
HTTP接口测试常见请求类型
嘉美伯爵   2019年10月29日 17:54   Python   HTTP   103  

微信图片_20191029175636.png

post请求相对于get请求多一个body部分,平时开发遇到的CONTENT_TYPE有下面四种类型

  • application/x-www-form-urlencoded

  • application/json

  • text/xml

  • multipart/form-data

application/x-www-form-urlencoded

该方法一些前后端不分离项目常用的请求方式,它要求key、value符合key=value&这种格式,在接口请求过程中我们必须以这种方式进行请求,该类型发送的数据进入post或get。

微信图片_20191030170044.png

# 注意这里的parse,有的api接口为了安全,而是接收这种拼接好的字符串,为了避免出错,这里建议parse,它是兼容的
from urllib import parse
url = 'http://www.example/post'
params = json.dumps({'key1': 'value1', 'key2': 'value2'})
data = parse.urlencode(params)
r = requests.post(url, data=data)
print (r.text)

application/json

该方法一些前后端分离项目常用的请求方式,它要求发送的数据必须进行符合json格式,在接口请求中它并不进入post或get,而是进入body。

微信图片_20191030165136.png

url = 'http://www.example/post'
s = json.dumps({'key1': 'value1', 'key2': 'value2'})
r = requests.post(url, data=s)
print (r.text)

multipart/form-data

该方法在进行上传文件时使用,通用在postman下进行发送,该方法进body,且以字节流的形式临时保存在body中。

微信图片_20191030171751.png

url = 'http://httpbin.org/post'
files = {'file': open('C://Users//Someone//Desktop//1.png', 'rb')}
r = requests.post(url, files=files)
print(r.text)

text/xml

目前接触到的该方法只在微信api接口中遇到,公众号几乎全部使用该类型,该类型进入body。下面是利用postman发送文件进行的。

微信图片_20191030171438.png

import requests

with open(archivo_request,"r") as archivo:
    request_data = archivo.read()
target_url = "http://127.0.0.1:8000/?wsdl"
headers = {'Content-type':'text/xml'}
data_response = requests.post(target_url, data=request_data, headers=headers)

参考链接

python实现Content-Type类型为application/x-www-form-urlencoded发送POST请求

Python实现接口测试中的常见四种Post请求数据

python接口自动化25-发xml格式post请求

详解 POST 请求中的 Content-Type

python3 requests详解