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])
- 标准可变映射接口