python菜鸟级requests请求封装

分步骤发起requests请求

# 导入requests模块


# 定义一个url,构造一个请求的url
url = "http://host/lujing"

# 定义参数,创建请求参数
params = {
    "mobile": "18200004321",
    "pwd": "123456",
}

# 修改请求头中的请求客户端
# 反爬虫措施,需要自己添加合法的请求,一般不需要修改
headers = {
    "User-Agent": "Mozilla/5.0"
}

# 创建Session会话对象,相当于Jmeter中的cookie管理器
session = requests.Session()

# 发起请求,向服务器发起 请求
# 如果给params传参,就是以查询字符产的形式传参
res = requests.get(url=url, params=params, headers=headers)

# 如果给data传参,那么会以x-www-from-urlencoded的形式来传参
res = requests.post(url=url, data=params, headers=headers)     # 返回的是一个Response对象,可以把它当作响应报文

# 如果给json传参,那么会以json格式的形式来传参
# 这里的params既可以是字典,也可以是json格式的字符串
# 所有的参数,都转化为字典来传递
res = requests.get(url=url, params=params, headers=headers)

print(res.status_code)  # 获取响应状态码
print("text格式的报文为【{}】".format(res.text))     # 获取响应报文
print(res.json())   # 将响应的报文转化为python的中的数据类型
print(res.cookies)  # 获取cookie
pass

requests的封装

import requests
import json


class HandleRequests:
    """
    封装requests类
    """
    def __init__(self):
        """
        定义一个session的参数
        """
        self.session = requests.Session()

    def get_requests(self, url, method="post", data=None, is_json=False):
        """
        向服务器发起请求
        :param url: 请求的地址
        :param method: 请求的方式
        :param data: 请求的参数
        :param is_json: 是否为json字符串格式
        :return:
        """
        # 如果数据为json格式的字符串,则转换为str
        if isinstance(data, str):
            try:
                data = json.load(data)
            except Exception:
                data = eval(data)

        # 请求方式为全部小写字母
        method = method.lower()
        # 如果请求方式为get
        if method == "get":
            res = self.session.get(url, params=data)
            # 如果请求方式为post
        elif method == "post":
            # 如果is_json为True,那么以json形式传参
            if is_json:
                res = self.session.post(url, json=data)
            # 如果is_json为False,那么以www-from表单形式传参
            else:
                res = self.session.post(url, data=data)
        else:
            print("不支持除了【{}】以外的请求方式".format(method))

        return res

    def close(self):
        """
        关闭请求链接
        :return:
        """
        self.session.close()

 

转载于:https://www.cnblogs.com/xingyunqiu/p/11338278.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值