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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章