请求标头#

请求标头插件钩子允许插件作者向 conda 内的 HTTP 请求添加自定义 HTTP 标头。这通过在调用 requests.Session.request 时准备 requests.PreparedRequest 对象时插入这些标头来实现。

有两个可用于此目的的钩子

  1. conda_session_headers():此钩子用于定义将与所有 HTTP 请求(或主机子集)一起提交的自定义标头

  2. conda_request_headers():此钩子用于定义将与特定 HTTP 请求一起提交的自定义标头。

警告

虽然第二个钩子 (conda_request_headers()) 也可以创建会话标头,但建议使用第一个钩子 (conda_session_headers()) 以提高缓存性能。

conda_request_headers(host: str, path: str)#

注册新的 HTTP 请求标头

下面的示例定义了如何为所有主机名为 example.com 且路径为 path/to/endpoint.json 的请求添加 HTTP 标头。

示例

from conda import plugins

HOSTS = {"example.com", "sub.example.com"}
ENDPOINT = "/path/to/endpoint.json"


@plugins.hookimpl
def conda_request_headers(host: str, path: str):
    if host in HOSTS and path == ENDPOINT:
        yield plugins.CondaRequestHeader(
            name="Example-Header",
            value="example",
        )
conda_session_headers(host: str)#

注册新的 HTTP 请求标头

下面的示例定义了如何为所有主机名为 example.com 的请求添加 HTTP 标头。

示例

from conda import plugins

HOSTS = {"example.com", "sub.example.com"}


@plugins.hookimpl
def conda_session_headers(host: str):
    if host in HOSTS:
        yield plugins.CondaRequestHeader(
            name="Example-Header",
            value="example",
        )

两个钩子都使用 CondaRequestHeader 类来定义标头

class CondaRequestHeader#

定义供应商特定的标头以包含 HTTP 请求

有关如何使用它的详细信息,请参阅 conda_request_headers()conda_session_headers()

参数:
  • name -- HTTP 请求中使用的标头的名称

  • value -- HTTP 请求中使用的标头的值

name#
value#