python接口自动化第三篇--封装get和post的Cookie代码框架

# 封装get和post
import logging

import requests


class RequestsCookieHandler:
    def __init__(self):
        self.session = requests.Session()#用一个session去接收


    def get(self, url, params, **kw):  # **kwargs是不定长参数,headers是放在这个不定长参数里
        # '''封装一个get方法,发送get请求'''
        try:  # 当处理不成功时,比如URL地址输入方式错误,或者接口超时timeout,需要抛出一个异常
            res = self.session.get(url, params=params, **kw)

        except TimeoutError:
            # 记录日志信息,放入logger里边,这样我们就能知道问题出在哪里
            logging.error('访问不成功')
        else:
            return res

    def post(self, url, data=None, json=None, **kw):
        # '''封装一个post方法,发送post请求'''
        try:  # 当处理不成功时,比如URL地址输入方式错误,或者接口超时timeout,需要抛出一个异常
            res = self.session.get(url, data=data, json=json, **kw)  # 其中data是form表单形式的
        except TimeoutError:
            # 记录日志信息,放入logger里边,这样我们就能知道问题出在哪里
            logging.error('访问不成功')
        else:
            return res

    # vist方法是整合接口请求的方法
    def vist(self, method, url, params=None, data=None, json=None, **kw):
        '''访问接口'''
        'GET,如果传输进来的是大写的GET。可以使用lower方法'
        if method.lower == 'get':
            return self.get(url, params=params, **kw)
        elif method.lower == 'post':
            return self.post(url, data=data, json=json, params=params, **kw)

        # 如果接口中还有其他的请求方式比如put,option之类色,可以用下方的方法,实际工作中常用的是get和post
        else:
            return self.session.request(method, url, **kw)

    def json(self, method, url, params=None, data=None, json=None, **kw):  # json是要再vist方法下去进行进一步的处理
        '''访问接口,获取json数据'''
        res = self.vist(url, method, params=params, data=data, json=json, **kw)
        # 获取json数据
        try:
            return res.json()
        except:
            # 记录日志信息
            logging.error('不是json格式的数据')








 

总结tips:

1、需要一个初始化的方法init,用 session来接收cookie,session是requests库的一个管理器

2、将上一篇文章中的requests替换成self.session就可以啦

发布了29 篇原创文章 · 获赞 4 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章