请求标头#
请求标头插件钩子允许插件作者向 conda 内的 HTTP 请求添加自定义 HTTP 标头。这通过在调用 requests.Session.request 时准备 requests.PreparedRequest 对象时插入这些标头来实现。
有两个可用于此目的的钩子
conda_session_headers()
:此钩子用于定义将与所有 HTTP 请求(或主机子集)一起提交的自定义标头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#