post请求相对于get请求多一个body部分,平时开发遇到的CONTENT_TYPE有下面四种类型
该方法一些前后端不分离项目常用的请求方式,它要求key、value符合key=value&这种格式,在接口请求过程中我们必须以这种方式进行请求,该类型发送的数据进入post或get。
# 注意这里的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)
该方法一些前后端分离项目常用的请求方式,它要求发送的数据必须进行符合json格式,在接口请求中它并不进入post或get,而是进入body。
url = 'http://www.example/post'
s = json.dumps({'key1': 'value1', 'key2': 'value2'})
r = requests.post(url, data=s)
print (r.text)
该方法在进行上传文件时使用,通用在postman下进行发送,该方法进body,且以字节流的形式临时保存在body中。
url = 'http://httpbin.org/post'
files = {'file': open('C://Users//Someone//Desktop//1.png', 'rb')}
r = requests.post(url, files=files)
print(r.text)
目前接触到的该方法只在微信api接口中遇到,公众号几乎全部使用该类型,该类型进入body。下面是利用postman发送文件进行的。
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请求