检查 http.client.HTTPSConnection 实例是否返回正确的连接且没有错误

问题描述 投票:0回答:1

基本上,我从Python中创建一个http.client.HTTPSConnection的实例,该实例是从远程服务器url地址创建的,以便下载远程文件:

try:
    conn = http.client.HTTPSConnection(remoteServerUrl)
    conn.request("GET", remoteFile) 
    # rest of code
except Exception as e:
    print(e.message)
finally:
    conn.close()

如果我断开与互联网的连接(没有互联网连接)并执行上述代码,则在创建 http.client.HTTPSConnection 的实例时,它不会抛出任何异常,例如无法与远程服务器建立连接。 conn 对象看起来也被正确填充。因此,当执行下一行 conn.request 时,我在那一刻收到异常,但之前没有。

我想在创建实例时检测错误,而不必等到请求(conn.request)完成。

当执行 conn.request 代码行时,它会抛出以下异常:

socket.gaierror: [Errno 11001] getaddrinfo failed

那么如何检测我是否获得了“正确”的 http.client.HTTPSConnection 实例而没有错误?

python https httpclient
1个回答
0
投票

简短的回答是你不能。如果你查看源代码,你会发现

HTTPSConnection
HTTPConnection
几乎什么也没做。他们甚至不尝试解析 URL 中的主机名。

您可以做的一件事就是致电

connect
。这将尝试解析主机名并建立连接。

但是,我不明白这对你有何帮助。仅仅建立连接并不能避免(后续)网络错误。

© www.soinside.com 2019 - 2024. All rights reserved.