博客 / 詳情

返回

python requests統一處理請求和響應

# 導入requests庫
import requests

# 自定義處理響應的函數
def custom_response_handler(response, *args, **kwargs):
    # 檢查響應狀態碼
    if response.status_code != 200:
        print(response.request.url + " " + response.text)
        raise RuntimeError(response.text)
    
    # 解析JSON數據
    json_data = response.json()
    
    # 檢查errcode是否為0
    if json_data.get('errcode') != 0:
        print("🚨🚨🚨  Error  🚨🚨🚨️")
        print(response.request.url + " " + json_data.get('errmsg'))
        raise RuntimeError(json_data.get('errmsg'))
    else:
        pass
    
    return response

# 自定義會話類,繼承自requests.Session
class CustomSession(requests.Session):
    def __init__(self):
        super(CustomSession, self).__init__()

    # 重寫request方法
    def request(self, method, url, **kwargs):
        # 在URL前添加固定部分
        url = 'https://www.xxx.com' + url
        
        # 設置默認超時時間為3秒
        kwargs.setdefault('timeout', 3)
        
        # 更新請求頭部信息
        kwargs.setdefault('headers', {}).update(...)
        
        return super(CustomSession, self).request(method, url, **kwargs)

# 創建自定義會話對象
my_session = CustomSession()

# 禁用SSL驗證
my_session.verify = False

# 添加響應處理鈎子
my_session.hooks['response'].append(custom_response_handler)
本文使用MdSync工具發佈!
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.