Files
any-auto-register/core/base_executor.py
2026-03-22 21:01:31 +08:00

49 lines
1.1 KiB
Python

"""执行器基类 - 抽象 HTTP 请求层,支持 protocol/headless/headed 三种模式"""
from abc import ABC, abstractmethod
from dataclasses import dataclass, field
from typing import Any
@dataclass
class Response:
status_code: int
text: str
headers: dict = field(default_factory=dict)
cookies: dict = field(default_factory=dict)
def json(self) -> Any:
import json
return json.loads(self.text)
class BaseExecutor(ABC):
def __init__(self, proxy: str = None):
self.proxy = proxy
@abstractmethod
def get(self, url: str, *, headers: dict = None, params: dict = None) -> Response:
...
@abstractmethod
def post(self, url: str, *, headers: dict = None, params: dict = None,
data: dict = None, json: Any = None) -> Response:
...
@abstractmethod
def get_cookies(self) -> dict:
...
@abstractmethod
def set_cookies(self, cookies: dict) -> None:
...
@abstractmethod
def close(self) -> None:
...
def __enter__(self):
return self
def __exit__(self, *args):
self.close()