httpx 开发人员界面
辅助函数
注意
仅当您在控制台中测试 HTTPX 或发出少量请求时,才使用这些函数。使用 Client将启用 HTTP/2 和连接池,以实现更高效、更持久的连接。
request方法
httpx.request(method, url, *, params=None, content=None, data=None, files=None, json=None, headers=None, cookies=None, auth=None, proxies=None, timeout=Timeout(timeout=5.0), follow_redirects=False, verify=True, cert=None, trust_env=True)
发送 HTTP 请求。
参数:
- method - 新的
Request对象的 HTTP 方法:GET、OPTIONS、HEAD、POST、PUT、PATCH或DELETE。 - url - 新的
Request对象的 URL。 - params - (可选)要作为字符串、字典或双元组序列包含在 URL 中的查询参数。
- content - (可选)要包含在请求正文中的二进制内容,作为字节或字节迭代器。
- data - (可选)将数据作为字典包含在请求正文中。
- files - (可选)要包含在请求正文中的上载文件的字典。
- json - (可选)要包含在请求正文中的 JSON 可序列化对象。
- headers - (可选)要包含在请求中的 HTTP 标头的字典。
- Cookie - (可选)要包含在请求中的 Cookie 项目字典。
- auth - (可选)发送请求时要使用的身份验证类。
- proxies - (可选)将代理密钥映射到代理 URL 的字典。
- timeout - (可选)发送请求时要使用的超时配置。
- follow_redirects - (可选)启用或禁用 HTTP 重定向。
- verify - (可选)SSL 证书(也称为 CA 捆绑包),用于验证所请求主机的身份。
True(默认 CA 捆绑包)、SSL 证书文件的路径、ssl.SSLContext或 False(将禁用验证)。 - cert - (可选)请求的主机用于对客户端进行身份验证的 SSL 证书。SSL 证书文件的路径,或两元组(证书文件、密钥文件)或三元组(证书文件、密钥文件、密码)。
- trust_env - (可选)启用或禁用环境变量进行配置。
返回: Response
用法:
>>> import httpx
>>> response = httpx.request('GET', 'https://httpbin.org/get')
>>> response
<Response [200 OK]>
get方法
httpx.get(url, *, params=None, headers=None, cookies=None, auth=None, proxies=None, follow_redirects=False, cert=None, verify=True, timeout=Timeout(timeout=5.0), trust_env=True)
发送GET请求。
参数:请参见httpx.request。
请注意 data, files, json 和 content参数在此函数上不可用,因为GET请求不应包含请求正文。
options方法
httpx.options(url, *, params=None, headers=None, cookies=None, auth=None, proxies=None, follow_redirects=False, cert=None, verify=True, timeout=Timeout(timeout=5.0), trust_env=True)
发送OPTIONS请求。
参数:请参见httpx.request。
请注意 data, files, json 和 content参数在此函数上不可用,因为OPTIONS请求不应包含请求正文。
head方法
httpx.head(url, *, params=None, headers=None, cookies=None, auth=None, proxies=None, follow_redirects=False, cert=None, verify=True, timeout=Timeout(timeout=5.0), trust_env=True)
发送HEAD请求。
参数:请参见httpx.request。
请注意 data, files, json 和 content参数在此函数上不可用,因为HEAD请求不应包含请求正文。
post方法
httpx.post(url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=None, proxies=None, follow_redirects=False, cert=None, verify=True, timeout=Timeout(timeout=5.0), trust_env=True)
发送POST请求。
参数:请参见httpx.request。
put方法
httpx.put(url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=None, proxies=None, follow_redirects=False, cert=None, verify=True, timeout=Timeout(timeout=5.0), trust_env=True)
发送PUT请求。
参数:请参见httpx.request。
patch方法
httpx.patch(url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=None, proxies=None, follow_redirects=False, cert=None, verify=True, timeout=Timeout(timeout=5.0), trust_env=True)发送PATCH请求。
参数:请参见httpx.request。
delete方法
httpx.delete(url, *, params=None, headers=None, cookies=None, auth=None, proxies=None, follow_redirects=False, cert=None, verify=True, timeout=Timeout(timeout=5.0), trust_env=True)发送DELETE请求。
参数:请参见httpx.request。
请注意 data, files, json 和 content参数在此函数上不可用,因为DELETE请求不应包含请求正文。
stream方法
httpx.stream(method, url, *, params=None, content=None, data=None, files=None, json=None, headers=None, cookies=None, auth=None, proxies=None, timeout=Timeout(timeout=5.0), follow_redirects=False, verify=True, cert=None, trust_env=True)
httpx.request()的替代方案是流式传输响应体,而不是立即将其加载到内存中。
参数:请参见httpx.request。
另请参见:流式处理响应
Client
class httpx.Client(*, auth=None, params=None, headers=None, cookies=None, verify=True, cert=None, http1=True, http2=False, proxies=None, mounts=None, timeout=Timeout(timeout=5.0), follow_redirects=False, limits=Limits(max_connections=100, max_keepalive_connections=20, keepalive_expiry=5.0), max_redirects=20, event_hooks=None, base_url='', transport=None, app=None, trust_env=True, default_encoding='utf-8')
HTTP 客户端,具有连接池、HTTP/2、重定向、Cookie 持久性等功能。
用法:
>>> client = httpx.Client()
>>> response = client.get('https://example.org')参数:
- auth - (可选)发送请求时要使用的身份验证类。
- params- (可选)要作为字符串、字典或双元组序列包含在请求 URL 中的查询参数。
- headers - (可选)发送请求时要包含的 HTTP 标头字典。
- cookies - (可选)发送请求时要包含的 Cookie 项目字典。
- verify - (可选)SSL 证书(也称为 CA 捆绑包),用于验证所请求主机的身份。
True(默认 CA 捆绑包)、SSL 证书文件的路径、ssl.SSLContext或 False(将禁用验证)。 - cert - (可选)请求的主机用于对客户端进行身份验证的 SSL 证书。SSL 证书文件的路径,或两元组(证书文件、密钥文件)或三元组(证书文件、密钥文件、密码)。
- proxies- (可选)将代理密钥映射到代理 URL 的字典。
- timeout - (可选)发送请求时要使用的超时配置。
- limits - (可选)要使用的限制配置。
- max_redirects - (可选)应遵循的最大重定向响应数。
- base_url - (可选)生成请求 URL 时用作基础的 URL。
- transport - (可选)用于通过网络发送请求的传输类。
- app- (可选)要向其发送请求的 WSGI 应用程序,而不是发送实际的网络请求。
- trust_env - (可选)启用或禁用环境变量进行配置。
- default_encoding - (可选)用于解码响应文本的默认编码(如果响应内容类型标头中不包含字符集信息)。设置为可调用的字符集以进行自动字符集检测。默认值:“
utf-8”。
headers
发送请求时要包含的 HTTP 标头。
cookies
发送请求时要包含的 Cookie 值。
params
发送请求时要包含在 URL 中的查询参数。
auth
在请求级别传递任何身份验证类时使用。
另请参阅身份验证。
request方法
request(self, method, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
生成并发送请求。
等效于:
request = client.build_request(...)
response = client.send(request, ...)
请参阅Client.build_request() 、Client.send()和 配置的合并,了解如何将各种参数与client-level配置合并。
get方法
get(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
发送GET请求。
参数:请参见httpx.request。
head方法
head(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
发送HEAD请求。
参数:请参见httpx.request。
options方法
options(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
发送OPTIONS请求。
参数:请参见httpx.request。
post方法
post(self, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
发送POST请求。
参数:请参见httpx.request。
put方法
put(self, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
发送PUT请求。
参数:请参见httpx.request。
patch方法
patch(self, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
发送PATCH请求。
参数:请参见httpx.request。
delete方法
delete(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
发送DELETE请求。
参数:请参见httpx.request。
stream方法
stream(self, method, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
httpx.request()的替代方案是流式传输响应体,而不是立即将其加载到内存中。
参数:请参见httpx.request。
另请参见:流式处理响应
build_request方法
build_request(self, method, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, timeout=, extensions=None)
生成并返回请求实例。
-
params、headers和cookies参数将与client上设置的任何值合并。 -
urlbase_url参数将与client上的任何集合并。
另请参阅:请求实例
send方法
send(self, request, *, stream=False, auth=, follow_redirects=)
发送请求。
请求按原样发送,未经修改。
通常,您需要构建一个Client.build_request(),以便将任何客户端级配置合并到请求中,但httpx.Request()也支持传递显式配置。
另请参阅:请求实例
close方法
close(self)
关闭transport和代理。
AsyncClient
class httpx.AsyncClient(*, auth=None, params=None, headers=None, cookies=None, verify=True, cert=None, http1=True, http2=False, proxies=None, mounts=None, timeout=Timeout(timeout=5.0), follow_redirects=False, limits=Limits(max_connections=100, max_keepalive_connections=20, keepalive_expiry=5.0), max_redirects=20, event_hooks=None, base_url='', transport=None, app=None, trust_env=True, default_encoding='utf-8')
异步 HTTP 客户端,具有连接池、HTTP/2、重定向、Cookie 持久性等功能。
用法:
>>> async with httpx.AsyncClient() as client:
>>> response = await client.get('https://example.org')
参数:
- auth - (可选)发送请求时要使用的身份验证类。
- params - (可选)要作为字符串、字典或双元组序列包含在请求 URL 中的查询参数。
- headers- (可选)发送请求时要包含的 HTTP 标头字典。
- cookies - (可选)发送请求时要包含的 Cookie 项目字典。
- verify - (可选)SSL 证书(也称为 CA 捆绑包),用于验证所请求主机的身份。
True(默认 CA 捆绑包)、SSL 证书文件的路径或False(禁用验证)。 - cert - (可选)请求的主机用于对客户端进行身份验证的 SSL 证书。SSL 证书文件的路径,或两元组(证书文件、密钥文件)或三元组(证书文件、密钥文件、密码)。
- http2 - (可选)指示是否应启用 HTTP/2 支持的布尔值。缺省值为 。False
- proxies - (可选)将 HTTP 协议映射到代理 URL 的字典。
- timeout - (可选)发送请求时要使用的超时配置。
- limits - (可选)要使用的限制配置。
- max_redirects - (可选)应遵循的最大重定向响应数。
- base_url - (可选)生成请求 URL 时用作基础的 URL。
- transport - (可选)用于通过网络发送请求的传输类。
- app - (可选)要向其发送请求的 ASGI 应用程序,而不是发送实际的网络请求。
- trust_env - (可选)启用或禁用环境变量进行配置。
- default_encoding - (可选)用于解码响应文本的默认编码(如果响应内容类型标头中不包含字符集信息)。设置为可调用的字符集以进行自动字符集检测。默认值:“
utf-8”。
headers
发送请求时要包含的 HTTP 标头。
cookies
发送请求时要包含的 Cookie 值。
params
发送请求时要包含在 URL 中的查询参数。
auth
在请求级别传递任何身份验证类时使用。
另请参阅身份验证。
request方法
request(self, method, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
生成并发送请求。
等效于:
request = client.build_request(...) response = await client.send(request, ...)
请参阅AsyncClient.build_request() 和AsyncClient.send() 配置的合并,了解如何将各种参数与客户端级配置合并。
get方法
get(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
发送GET请求。
参数:请参见httpx.request。
head方法
head(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
发送HEAD请求。
参数:请参见httpx.request。
options方法
options(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
发送OPTIONS请求。
参数:请参见httpx.request。
post方法
post(self, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
发送POST请求。
参数:请参见httpx.request。
put方法
put(self, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
发送PUT请求。
参数:请参见httpx.request。
patch方法
patch(self, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
发送PATCH请求。
参数:请参见httpx.request。
delete方法
delete(self, url, *, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
发送DELETE请求。
参数:请参见httpx.request。
stream方法
stream(self, method, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, auth=, follow_redirects=, timeout=, extensions=None)
httpx.request()的替代方案是流式传输响应体,而不是立即将其加载到内存中。
参数:请参见httpx.request。
另请参见:流式处理响应
build_request方法
build_request(self, method, url, *, content=None, data=None, files=None, json=None, params=None, headers=None, cookies=None, timeout=, extensions=None)生成并返回请求实例。
-
params、headers和cookies参数将与client上设置的任何值合并。 -
urlbase_url参数将与client上的任何集合并。
另请参阅:请求实例
send方法
send(self, request, *, stream=False, auth=, follow_redirects=)发送请求。
请求按原样发送,未经修改。
通常,您需要构建一个Client.build_request(),以便将任何客户端级配置合并到请求中,但httpx.Request()也支持传递显式配置。
另请参阅:请求实例
aclose方法
aclose(self)
关闭transport和代理。
Response
HTTP 响应。
-
def __init__(...) -
.status_code - int -
.reason_phrase - str -
.http_version- "HTTP/2"或"HTTP/1.1" -
.url - URL -
.headers - headers -
.content - bytes -
.text - str -
.encoding- str -
.is_redirect - bool -
.request - Request -
.next_request - 可选[Request] -
.cookies - cookies -
.history - 列表[Response] -
.elapsed - timedelta - 发送请求和针对该请求收到的相应响应调用 close() 之间经过的时间量。 total_seconds()以正确获取总经过的秒数。
-
def .raise_for_status() - None -
def .json() - Any -
def .read() - bytes -
def .iter_raw()- 字节迭代器 -
def .iter_bytes() - 字节迭代器 -
def .iter_text() - 文本迭代器 -
def .iter_lines() - 文本迭代器 -
def .close() - None -
def .next() - Response -
def .aread() - bytes -
def .aiter_raw() - 异步字节迭代器 -
def .aiter_bytes() - 异步字节迭代器 -
def .aiter_text() - 异步文本迭代器 -
def .aiter_lines()- 异步文本迭代器 -
def .aclose() - None -
def .anext()- 响应
Request
一个 HTTP 请求。可以显式构造,以便更好地控制通过网络发送的确切内容。
>>> request = httpx.Request("GET", "https://example.org", headers={'host': 'example.org'})
>>> response = client.send(request)
-
def __init__(method, url, [params], [headers], [cookies], [content], [data], [files], [json], [stream]) -
.method- str -
.url - 网址 -
.content- 字节、字节迭代器或字节异步迭代器 -
.headers - headers -
.cookies - cookie
URL
一个规范化的、支持IDNA的URL。
>>> url = URL("https://example.org/")
>>> url.host
'example.org'
-
def __init__(url, allow_relative=False, params=None) -
.scheme- str -
.authority - str -
.host - str -
.port - int -
.path - str -
.query - str -
.raw_path- str -
.fragment - str -
.is_ssl - bool -
.is_absolute_url- bool -
.is_relative_url - bool -
def .copy_with([scheme], [authority], [path], [query], [fragment]) - URL
Headers
不区分大小写的多维字典。
>>> headers = Headers({'Content-Type': 'application/json'})
>>> headers['content-type']
'application/json'
-
def __init__(self, headers, encoding=None) -
def copy() - headers
Cookies
一个类似字典的cookies 存储库。
>>> cookies = Cookies()
>>> cookies.set("name", "value", domain="example.org")
-
def __init__(cookies: [dict, Cookies, CookieJar]) -
.jar- CookieJar -
def extract_cookies(response) -
def set_cookie_header(request) -
def set(name, value, [domain], [path]) -
def get(name, [domain], [path]) -
def delete(name, [domain], [path]) -
def clear([domain], [path]) - 标准可变映射接口