【问题标题】:Python exception: ConnectionError 10054 An existing connection was forcibly closed by the remote hostPython 异常:ConnectionError 10054 现有连接被远程主机强行关闭
【发布时间】:2018-03-03 13:15:37
【问题描述】:

我还没有足够的声誉来评论另一个帖子,所以我会在这里问。我在执行“requests.get”时收到“ConnectionError 10054 现有连接被远程主机强制关闭”。现在,我在另一篇文章中阅读了这段代码,但不确定它是否完整;您能否编辑它,以便在出现错误时它会不断重试我的“requests.get”,然后当我的“requests.get”成功时当然退出。谢谢

import socket

retry_count = 5  # this is configured somewhere

for retries in range(retry_count):
    try:
        data1 = requests.get(url)
        return True
    except (error_reply, error_perm, error_temp):
        return False
    except socket.gaierror, e:
        if e.errno != 10054:
            return False
        reconnect()
return False

出现错误; 返回真 ^ SyntaxError: 'return' 外部函数

【问题讨论】:

    标签: python error-handling connection


    【解决方案1】:

    您出错的原因很简单。你还没有做一个函数,所以你不能调用return。解决此问题的最简单方法是使用break,它允许您跳出循环。这是在您的代码中使用break 的示例。

    import socket
    import requests
    retry_count = 5
    for retries in range(retry_count):
        try:
            data1 = requests.get(url)
            #Jumps Out Of Loop
            break
        except (socket.gaierror, requests.ConnectionError) as e:
            if e.errno != 10054:
                continue
            reconnect()
    #Does Something If Loop Never Breaks
    else:
      print("Couldn't Connect")
    

    【讨论】:

    • 您好,谢谢,但我收到错误消息;如果 e.errno != 10054: ^ TabError: 缩进中制表符和空格的使用不一致,我不得不将其更改为除了 socket.gaierror 为 e:
    • 另外,我目前没有收到 10054 错误,所以我可以制作一个假 url,所以我得到一个 11001 错误而不是测试,但在该行得到 TabError。
    • 我添加了 #if e.errno != 10054: 并放入 if e.errno != 11001: 但得到一个错误 - 除了 (error_reply, error_perm, error_temp): NameError: name 'error_reply' is未定义
    • 好的,我最初是使用你的代码来尝试给你一个返回错误发生的原因。您得到的当前错误是由此造成的。 error_reply、error_perm 和 error_temp 异常不存在,所以我只是将它们取出。我编辑了我的代码以制作一个更好的示例。
    • 好的,很酷,所以现在我要用一个假的 url 来测试它,而不是给我一个 11001 错误,那么我在哪里可以放另一个 print("Couldn't Connect") 命令以确保该功能正常工作?我把它放在 continue 命令上面,但我只是得到一个 Tab/Space 错误。谢谢
    猜你喜欢
    • 2012-02-07
    • 2011-06-06
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多