通过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)

 

posted @ 2020-11-05 17:19  听MM的话  阅读(549)  评论(0编辑  收藏  举报