应答器和解码器#
响应#
- class urllib3.response.BaseHTTPResponse(*, headers=None, status, version, reason, decode_content, request_url, retries=None)#
基类:
IOBase
- 参数:
- CONTENT_DECODERS = ['gzip', 'deflate']#
- REDIRECT_STATUSES = [301, 302, 303, 307, 308]#
- close()#
刷新并关闭IO对象。
如果文件已关闭,则此方法无效。
- 返回类型:
None
- property connection: HTTPConnection | None#
- drain_conn()#
- 返回类型:
None
- get_redirect_location()#
我们应该重定向到哪里?
- 返回:
如果得到重定向状态代码和有效位置,则返回truthy重定向位置字符串。
None
如果重定向状态没有位置。False
如果不是重定向状态代码。- 返回类型:
str | None | Literal[False]
- getheaders()#
- 返回类型:
HTTPHeaderDict
- info()#
- 返回类型:
HTTPHeaderDict
- json()#
将HTTP响应的正文解析为JSON。
要使用自定义JSON解码器,请传递
HTTPResponse.data
传给解码者。此方法可以引发 UnicodeDecodeError 或 json.JSONDecodeError 。
阅读更多内容 here 。
- 返回类型:
- read(amt=None, decode_content=None, cache_content=False)#
- read_chunked(amt=None, decode_content=None)#
- release_conn()#
- 返回类型:
None
- stream(amt=65536, decode_content=None)#
- class urllib3.response.HTTPResponse(body='', headers=None, status=0, version=0, reason=None, preload_content=True, decode_content=True, original_response=None, pool=None, connection=None, msg=None, retries=None, enforce_content_length=True, request_method=None, request_url=None, auto_close=True)#
-
HTTP响应容器。
向后兼容
http.client.HTTPResponse
但是他们的反应body
属性时按需加载和解码data
属性被访问。该类还与Python标准库的io
模块,因此可以将其视为该框架上下文中的可读对象。中未出现的行为的其他参数
http.client.HTTPResponse
:- 参数:
preload_content (bool) -- 如果为真,响应体将在施工期间预加载。
decode_content (bool) -- 如果为true,将尝试基于“内容编码”头解码正文。
original_response (_HttplibHTTPResponse | None) -- 当此HTTPResponse包装从
http.client.HTTPResponse
对象,为了进行调试,可以方便地包含原始文件。否则就没人用过了。enforce_content_length (bool) -- 强制内容长度检查。服务器返回的正文必须与内容长度头(如果存在)的值匹配。否则,引发错误。
body (_TYPE_BODY) --
headers (Mapping[str, str] | Mapping[bytes, bytes] | None) --
status (int) --
version (int) --
reason (str | None) --
pool (HTTPConnectionPool | None) --
connection (HTTPConnection | None) --
msg (_HttplibHTTPMessage | None) --
request_method (str | None) --
request_url (str | None) --
auto_close (bool) --
- auto_close#
- status#
- headers#
- CONTENT_DECODERS = ['gzip', 'deflate']#
- REDIRECT_STATUSES = [301, 302, 303, 307, 308]#
- close()#
刷新并关闭IO对象。
如果文件已关闭,则此方法无效。
- 返回类型:
None
- property connection: HTTPConnection | None#
- drain_conn()#
读取并丢弃响应连接中的任何剩余HTTP响应数据。
HTTPResponse连接中的未读数据会阻止连接释放回池。
- 返回类型:
None
- flush()#
刷新写入缓冲区(如果适用)。
这不是为只读流和非阻塞流实现的。
- 返回类型:
None
- get_redirect_location()#
我们应该重定向到哪里?
- 返回:
如果得到重定向状态代码和有效位置,则返回truthy重定向位置字符串。
None
如果重定向状态没有位置。False
如果不是重定向状态代码。- 返回类型:
str | None | Literal[False]
- getheaders()#
- 返回类型:
HTTPHeaderDict
- info()#
- 返回类型:
HTTPHeaderDict
- isatty()#
返回这是否是互动流。
如果无法确定,则返回FALSE。
- json()#
将HTTP响应的正文解析为JSON。
要使用自定义JSON解码器,请传递
HTTPResponse.data
传给解码者。此方法可以引发 UnicodeDecodeError 或 json.JSONDecodeError 。
阅读更多内容 here 。
- 返回类型:
- read(amt=None, decode_content=None, cache_content=False)#
类似于
http.client.HTTPResponse.read()
,但带有两个附加参数:decode_content
和cache_content
。
- read_chunked(amt=None, decode_content=None)#
类似
HTTPResponse.read()
,但有一个附加参数:decode_content
.
- readline(size=-1, /)#
从流中读取并返回一行。
如果指定了SIZE,将读取最大大小的字节。
对于二进制文件,行终止符始终为b‘n’;对于文本文件,要打开的新行参数可用于选择可识别的行终止符(S)。
- readlines(hint=-1, /)#
返回流中的行列表。
可以指定提示来控制读取的行数:如果到目前为止所有行的总大小(以字节/字符为单位)超过提示,则不会再读取任何行。
- release_conn()#
- 返回类型:
None
- seek()#
更改流位置。
将流位置更改为给定的字节偏移量。偏移量是相对于位置指示的位置进行解释的。其中的值包括:
0--流的开始(默认);偏移量应为零或正数
1--当前流位置;偏移量可以为负数
2--流结束;偏移量通常为负数
返回新的绝对位置。
- seekable()#
返回Object是否支持随机访问。
如果为FALSE,则Seek()、Tell()和Truncate()将引发OSError。此方法可能需要执行测试Seek()。
- stream(amt=65536, decode_content=None)#
read()方法的生成器包装器。呼叫将被阻止,直到
amt
已从连接中读取字节或直到连接关闭。
- supports_chunked_reads()#
检查基础类似文件的对象是否看起来像
http.client.HTTPResponse
对象。我们通过测试fp属性来实现这一点。如果它存在,我们假设它返回由read_chunked()处理的原始块。- 返回类型:
- tell()#
获取到目前为止通过网络拉出的字节数。返回的内容数量可能不同。 :meth:``urllib3.response.HTTPResponse.read` `如果字节在线路上编码(例如,压缩)。
- 返回类型:
- truncate()#
截断文件以调整字节大小。
文件指针保持不变。Size缺省为Tell()报告的当前IO位置。返回新大小。
- writable()#
返回Object是否被打开以进行写入。
如果为FALSE,WRITE()将引发OSError。
- writelines(lines, /)#
编写要流传输的行的列表。
没有添加行分隔符,因此通常提供的每一行的末尾都有一个行分隔符。
译码器#
解码器类用于使用 Content-Encoding
转化为未压缩的二进制表示。
- class urllib3.response.DeflateDecoder#
- class urllib3.response.GzipDecoder#