#!/usr/bin/env python

"""
Copyright (c) 2006-2024 sqlmap developers (https://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""

# 导入getText函数,用于文本转换
from lib.core.convert import getText
# 导入urllib库并重命名为_urllib,用于处理URL请求
from thirdparty.six.moves import urllib as _urllib

class MethodRequest(_urllib.request.Request):
    """
    继承自urllib.request.Request类
    用于创建HTTP请求(HEAD/PUT/DELETE等)的自定义请求类
    """

    def set_method(self, method):
        # 设置HTTP请求方法
        # 参数method: 字符串类型,表示HTTP方法(如GET、POST、HEAD等)
        # getText()将输入转换为文本格式
        # upper()将文本转为大写
        self.method = getText(method.upper())  # Python3兼容性处理

    def get_method(self):
        # 获取HTTP请求方法
        # getattr用于获取对象的属性
        # 如果self.method存在就返回它
        # 否则返回父类Request默认的get_method()方法的结果
        return getattr(self, 'method', _urllib.request.Request.get_method(self))
