def METHOD_NAME(self, method: str, url: str, **kwargs) -> Response:
    """发送 HTTP 请求
    :param method: 请求类型，GET / POST / ...
    :param url: 请求地址
    :param raise_for_status: 是否在响应状态码非 2xx 时抛出异常
    :param **kwargs: 其他请求参数
    :raises: CompRequestError（请求错误），CompInternalError（内部错误）
    """
    raise_for_status = kwargs.pop('raise_for_status', True)
    self.set_defaults_kwargs(kwargs)
    # 设置请求 request-id
    kwargs['headers']["X-Request-Id"] = local.request_id
    session = requests.session()
    session.mount('http://', _pool_adapter)
    session.mount('https://', _pool_adapter)
    try:
        started_at = time.time()
        resp = session.METHOD_NAME(method, url, **kwargs)
        # TODO：记录 curl log 出错时，是否不应该影响主流程？
        requests_curl_log(resp, started_at, kwargs.get('params'))
    except RequestException as e:
        logger.exception('requests error when requesting {}: {}'.format(url, e))
        raise CompRequestError(url, e)
    except Exception as e:
        logger.exception('internal error when requesting {}: {}'.format(url, e))
        raise CompInternalError(str(e)) from e
    if raise_for_status:
        try:
            resp.raise_for_status()
        except HTTPError as e:
            raise CompRequestError(url, e)
    return resp