gpt4 book ai didi

ssl - 在 Python3.6 中使用 http.client 返回 [SSL : UNKNOWN_PROTOCOL]

转载 作者:行者123 更新时间:2023-12-04 22:38:04 25 4
gpt4 key购买 nike

该脚本有一个非常简单的目的,即检查一系列网站是否启动并运行。我尝试使用 urllib,但出现证书错误。

使用 http.client 和通过代理进行隧道似乎会返回一个奇怪的输出,直到网站由于 [SSL: UNKNOWN_PROTOCOL] 错误而崩溃。

我遇到的两个问题是:

  • 我不明白为什么对于上述网站,我得到一个 404 响应,尽管如果我在浏览器中 checkin 该网站正在运行。
  • 在某些时候(当我检查另一个网站时),我收到“ssl.SSLError: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:777)”

  • 编码:
    import http.client, csv

    my_file = open('active_site.csv')
    my_reader = csv.reader(my_file)
    my_data = list(my_reader)
    my_len = len(my_data)

    g = 1
    while g < 10:
    print("Checking {}....\n".format(my_data[g][3]))
    conn = http.client.HTTPSConnection("My_Proxy", my_port)
    conn.set_tunnel(my_data[g][3])
    conn.request("HEAD", "/index.html")
    res = conn.getresponse()
    if res.status == 200:
    print("{} is online!".format(my_data[g][3]))
    g += 1
    conn.close()
    else:
    print("{} seems to be offline".format(my_data[g][3]))
    g += 1
    conn.close()

    我很感激任何关于我在哪里搞砸和/或不完整代码的建议。

    最佳答案

    @罗伯特,
    对于 1,此行为的主要原因是服务器需要 session 信息。该信息可以是授权 token 或 cookie。使用隐身模式下的浏览器检查对同一 URL 的访问(如果它仍然有效)。如果请求返回 404,则原因是 cookie 和 headers。在正常模式下检查浏览器中的 cookie 和 header ,并尝试在您的 HTTPSConnection 中使用它们。
    对于 2。我猜这是因为您的服务器使用 TTLs v3.0 进行 HTTPS。尝试使用为此版本启用的 python 3.8。查询:https://docs.python.org/3/library/http.client.html#http.client.HTTPSConnection

    关于ssl - 在 Python3.6 中使用 http.client 返回 [SSL : UNKNOWN_PROTOCOL],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47338073/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com