通过requests发送不同请求格式的数据
#############发送不同请求格式的数据
1、post_form发送表单数据,构造一个字典,通过requests中的data参数来接收
2、post_json发送json数据,构造一个字典,通过requests中的json参数来接收
3、post_xml发送xml数据,通过"""""",来构造一个符合xml的原始数据,声明编码类型,构造请求头,通过requests中的data,headers参数来接收
4、post_json2发送json数据,通过"""""",来构造一个符合json的原始数据,声明编码类型,构造请求头,通过requests中的data,headers参数来接收(脱裤子放屁)
5、post_file发送混合表单数据,以而二进制的格式打开一个文件,以变量的形式赋值给参数file,通过requests中的files参数来接收
6、发送get请求,需要注意的是,构造字典的方式有多种,Cookie值只能是字符串
import requests def post_form(): # 1. 组装请求 url = 'https://httpbin.org/post' data = { 'name': '临渊', 'password': '123456' } # 2. 发送 res = requests.post(url, data=data) # 3. 解析响应 print(res.text) def post_json(): url = 'https://httpbin.org/post' json_data = { "name": "临渊", "password": 123456, "is_male": True } res = requests.post(url, json=json_data) print(res.text) def post_xml(): raw_data = ''' <xml> <name>张三</name> <age>21</age> </xml> ''' data = raw_data.encode('utf-8') # 如果原始数据字符串有非ASCII,编码为二进制发送 url = 'https://httpbin.org/post' headers = {'Content-Type': 'application/xml'} # 需要自己声明请求数据类型 res = requests.post(url, data=data, headers=headers) print(res.text) def post_json2(): raw_data = ''' { "name": "临渊", "password": 123456, "is_male": true } ''' data = raw_data.encode('utf-8') # 如果原始数据字符串有非ASCII,编码为二进制发送 url = 'https://httpbin.org/post' headers = {'Content-Type': 'application/json'} # 需要自己声明请求数据类型 res = requests.post(url, data=data, headers=headers) print(res.text) def post_file(): url = 'http://115.28.108.130:5000/api/user/uploadImage/' f = open(r'D:\20期\20期\day08\request_demo_01.py', 'rb') # file_data = f.read() files = { 'file': f } res = requests.post(url, files=files) print(res.text) post_file()
发送get请求,需要注意的是,构造字典的方式有多种,Cookie值只能是字符串
import requests # 1. 组装请求 url = 'https://httpbin.org/get' #字典构造的第一种形式 # params = { # 'name': '临渊', # 'age': [18,21], # } #字典构造的第二种形式 params = [('name','临渊'),('age',18),('age',21)] headers = { # 'Cookie': '_ga=GA1.3.1729237507.1599357212; _gid=GA1.3.1751344507.1599357212; _gauges_unique_hour=1; _gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1' } cookies = { '_ga': 'GA1.3.1729237507.1599357212', '_gid': 'GA1.3.1751344507.1599357212', '_gauges_unique_hour': '1' # 注意Cookie值只能是字符串格式 } # 2. 发送请求 res = requests.get(url, params=params, cookies=cookies) print(res.text) # 响应体文本
###################
1、通过平pprint,可以查看响应中的所有响应属性
2、打印响应中的不同响应信息
import requests # 1. 组装请求 url = 'https://httpbin.org/get?name=临渊&age=18' # 2. 发送请求 res = requests.get(url) from pprint import pprint pprint(res.__dict__) #获取所有的响应属性值 # 3. 解析响应 print(res.status_code) # 状态码 print(res.reason) # 状态码说明 print(res.raw) #原始数据 print(res.content) # print(res.text) # 响应体文本 print(res.elapsed) #响应时间 print(res.ok)