连接#

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)#

基类:HTTPConnection

基于 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响应指示应该关闭连接,则在返回响应之前将关闭该连接。当连接关闭时,基础套接字也将关闭。

返回类型:

HTTPResponse

property host: str#

getter方法以删除表示主机名是fqdn的任何尾随点。

一般来说,ssl证书不包含表示完全限定域名的尾随点,因此,当检查包含该点的域名时,它们不会正确验证。此外,有些服务器在提供时可能不希望接收尾随点。

但是,带有尾随点的主机名对于dns解析至关重要;使用尾随点执行查找将只正确解析适当的fqdn,而没有尾随点的查找将搜索系统的搜索域列表。因此,重要的是保持原始主机仅在适当的情况下使用(即,当执行dns查找以建立实际的tcp连接时,我们将通过该连接发送http请求)。

is_verified: bool = False#

此连接是否验证主机的证书。

request(method, url, body=None, headers=None, *, chunked=False, preload_content=True, decode_content=True, enforce_content_length=True)#

向服务器发送完整的请求。

参数:
返回类型:

None

request_chunked(method, url, body=None, headers=None)#

公共请求方法的替代方法,该方法使用分块编码而不是作为一个块发送正文

参数:
返回类型:

None

set_tunnel(host, port=None, headers=None, scheme='http')#

为HTTP连接隧道设置主机和端口。

在使用HTTP连接隧道的连接中,传递给构造函数的主机用作代理服务器,该代理服务器将所有通信转发到传递给 set_tunnel 。这是通过在建立连接时向代理服务器发送HTTP CONNECT请求来实现的。

必须在建立HTTP连接之前调用此方法。

Headers参数应该是要与连接请求一起发送的额外HTTP标头的映射。

参数:
返回类型:

None

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)#

基类:HTTPConnection

此构造函数的许多参数通过以下方式传递到基础SSL套接字 urllib3.util.ssl_wrap_socket()

参数:
  • host (str) --

  • port (int | None) --

  • timeout (_TYPE_TIMEOUT) --

  • source_address (tuple[str, int] | None) --

  • blocksize (int) --

  • socket_options (Sequence[Tuple[int, int, int | bytes]] | None) --

  • proxy (Url | None) --

  • proxy_config (ProxyConfig | None) --

  • cert_reqs (int | str | 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) --

  • ca_cert_data (None | str | bytes) --

  • ssl_minimum_version (int | None) --

  • ssl_maximum_version (int | None) --

  • ssl_version (int | str | 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)#

在使用连接之前,此方法应该只调用一次。

参数:
  • key_file (str | None) --

  • cert_file (str | None) --

  • cert_reqs (int | str | None) --

  • key_password (str | None) --

  • ca_certs (str | None) --

  • assert_hostname (None | str | Literal[False]) --

  • assert_fingerprint (str | None) --

  • ca_cert_dir (str | None) --

  • ca_cert_data (None | str | bytes) --

返回类型:

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) --

assert_fingerprint: str | None#

第3号字段的别名

assert_hostname: None | str | Literal[False]#

字段号2的别名

ssl_context: ssl.SSLContext | None#

字段号0的别名

use_forwarding_for_https: bool#

字段号%1的别名