连接#
- class urllib3.connection.HTTPConnection(host, port=None, *, timeout=_TYPE_DEFAULT.token, source_address=None, blocksize=16384, socket_options=[(6, 1, 1)], proxy=None, proxy_config=None)#
-
基于
http.client.HTTPConnection
但是在旧的和新的Python之间提供了额外的构造函数向后兼容层。其他关键字参数用于配置连接的属性。可接受的参数包括:
source_address
:设置当前连接的源地址。socket_options
:在基础套接字上设置特定选项。如果未指定,则从加载默认值HTTPConnection.default_socket_options
这包括禁用nagle的算法(将tcp_nodelay设置为1),除非连接位于代理之后。例如,如果除了默认设置之外,您还希望启用TCP Keep Alive,则可以传递:
HTTPConnection.default_socket_options + [ (socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1), ]
或者您可能希望通过传递空列表(例如,
[]
)
- 参数:
- close()#
关闭与HTTP服务器的连接。
- 返回类型:
None
- connect()#
连接到中指定的主机和端口 __init__.
- 返回类型:
None
- default_socket_options: ClassVar[Sequence[Tuple[int, int, int | bytes]]] = [(6, 1, 1)]#
默认情况下禁用Nagle的算法。
[(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)]
- getresponse()#
从服务器获取响应。
如果HTTPConnection处于正确状态,则返回HTTPResponse的实例或RESPONSE_CLASS变量返回的任何对象的实例。
如果尚未发送请求或尚未处理前一个响应,则引发ResponseNotReady。如果HTTP响应指示应该关闭连接,则在返回响应之前将关闭该连接。当连接关闭时,基础套接字也将关闭。
- 返回类型:
- property host: str#
getter方法以删除表示主机名是fqdn的任何尾随点。
一般来说,ssl证书不包含表示完全限定域名的尾随点,因此,当检查包含该点的域名时,它们不会正确验证。此外,有些服务器在提供时可能不希望接收尾随点。
但是,带有尾随点的主机名对于dns解析至关重要;使用尾随点执行查找将只正确解析适当的fqdn,而没有尾随点的查找将搜索系统的搜索域列表。因此,重要的是保持原始主机仅在适当的情况下使用(即,当执行dns查找以建立实际的tcp连接时,我们将通过该连接发送http请求)。
- request(method, url, body=None, headers=None, *, chunked=False, preload_content=True, decode_content=True, enforce_content_length=True)#
向服务器发送完整的请求。
- request_chunked(method, url, body=None, headers=None)#
公共请求方法的替代方法,该方法使用分块编码而不是作为一个块发送正文
- set_tunnel(host, port=None, headers=None, scheme='http')#
为HTTP连接隧道设置主机和端口。
在使用HTTP连接隧道的连接中,传递给构造函数的主机用作代理服务器,该代理服务器将所有通信转发到传递给 set_tunnel 。这是通过在建立连接时向代理服务器发送HTTP CONNECT请求来实现的。
必须在建立HTTP连接之前调用此方法。
Headers参数应该是要与连接请求一起发送的额外HTTP标头的映射。
- class urllib3.connection.HTTPSConnection(host, port=None, *, timeout=_TYPE_DEFAULT.token, source_address=None, blocksize=16384, socket_options=[(6, 1, 1)], proxy=None, proxy_config=None, cert_reqs=None, assert_hostname=None, assert_fingerprint=None, server_hostname=None, ssl_context=None, ca_certs=None, ca_cert_dir=None, ca_cert_data=None, ssl_minimum_version=None, ssl_maximum_version=None, ssl_version=None, cert_file=None, key_file=None, key_password=None)#
-
此构造函数的许多参数通过以下方式传递到基础SSL套接字
urllib3.util.ssl_wrap_socket()
。- 参数:
host (str) --
port (int | None) --
timeout (_TYPE_TIMEOUT) --
blocksize (int) --
socket_options (Sequence[Tuple[int, int, int | bytes]] | None) --
proxy (Url | None) --
proxy_config (ProxyConfig | None) --
assert_hostname (None | str | Literal[False]) --
assert_fingerprint (str | None) --
server_hostname (str | None) --
ssl_context (ssl.SSLContext | None) --
ca_certs (str | None) --
ca_cert_dir (str | None) --
ssl_minimum_version (int | None) --
ssl_maximum_version (int | None) --
cert_file (str | None) --
key_file (str | None) --
key_password (str | None) --
- connect()#
连接到中指定的主机和端口 __init__.
- 返回类型:
None
- set_cert(key_file=None, cert_file=None, cert_reqs=None, key_password=None, ca_certs=None, assert_hostname=None, assert_fingerprint=None, ca_cert_dir=None, ca_cert_data=None)#
在使用连接之前,此方法应该只调用一次。
- 参数:
- 返回类型:
None
- class urllib3.connection.ProxyConfig(ssl_context, use_forwarding_for_https, assert_hostname, assert_fingerprint)#
基类:
NamedTuple
- 参数:
ssl_context (ssl.SSLContext | None) --
use_forwarding_for_https (bool) --
assert_hostname (None | str | Literal[False]) --
assert_fingerprint (str | None) --
- ssl_context: ssl.SSLContext | None#
字段号0的别名