httpx 开发人员界面

2022-07-27 11:35 更新

辅助函数

注意
仅当您在控制台中测试 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​。

请注意 datafilesjson 和 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​。

请注意 datafilesjson 和 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​。

请注意 datafilesjson 和 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​。

请注意 datafilesjson 和 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])
  • 标准可变映射接口


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号