requests发送post请求遇到网络连接中断:ConnectionError

背景

项目需要的一个脚本程序,有一个功能是发送post请求获取数据。测试测的时候发现程序隔天停掉了,猜测是对方主机某一时刻断网了,所以导致程序停掉。

分析

我们发送post请求肯定是依靠网络的,如果网络断掉,又没有捕捉错误,那程序肯定会报错中断。

ps:初次写的时候确实没想到这一点,况且我是改写这个程序,原本它就那样。(从400+改到800+行,被我改的"面目全非" -. -)

解决

  1. 首先要复现这个bug,很明显程序会停掉。
  2. 捕捉错误,加上try …… except Exception,然后断网。捕捉到了错误ConnectionError
  3. 捕捉的错误改成requests.exceptions.ConnectionError,当发生断网时,记录日志。
  4. try except外加一个while True循环,如果发生断网,但是post请求还未成功获取到数据,就一直在这运行。
  5. try操作下加入break,如果成功就跳出while True循环
  6. except操作下加入等待。

ok,解决。

requests.exceptions.ConnectionError

请求未知的服务器,抛出异常

ps:我们这里是因为断网抛出的。


发表评论

评论列表,共 0 条评论

    暂无评论