使用Python“请求”库,如何判断ConnectionError是客户端还是服务器端?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用Python“请求”库,如何判断ConnectionError是客户端还是服务器端?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1224字,纯文字阅读大概需要2分钟。
内容图文
这是我现在丑陋的小代码片段:
for i in range(5):
try:
self.startTime=time.time()
self.rawfeed=requests.get(self.feedurl)
continue
except ConnectionError:
print "Got a connection error. Retrying", i
time.sleep(i*i) # giving a bit longer wait each time
pass
if i == 5: raise
self.ResponseTime=time.time()-self.startTime
这里有两个问题.首先,我的except语句似乎没有将“ConnectionError”识别为异常(已解决,谢谢堆栈器),而是抱怨它不是全局变量.第二,更重要的是,我真的想知道错误是我的方面,还是SERVER的方面.
通常我想重试我的错误,但放弃并报告SERVER错误. (通过“我的”错误,我的意思是服务器错误以外的任何其他内容.)
解决方法:
看一下请求源代码,只有在重试最大次数(MaxRetryError)时才会引发ConnectionError.
except MaxRetryError, e:
if not self.config.get('safe_mode', False):
raise ConnectionError(e)
这是否是由你的一方或服务器引起的,这是不可能的,因为双方的许多问题都可能导致同样的错误.例如,如果服务器的HTTP守护程序未运行,则连接尝试将超时.如果您在路由器中阻止它们或者由于某些其他原因导致路由器断开连接,则会发生完全相同的事情.
但是,您没有捕获的异常HTTPError更可能是您可能死的服务器错误. ConnectionError有点可能,但完全没有保证,是你自己.
您的第二个问题是您没有正确导入这些类.要么改变你的except除了requests.ConnectionError,要么改变请求导入ConnectionError,HTTPError.
内容总结
以上是互联网集市为您收集整理的使用Python“请求”库,如何判断ConnectionError是客户端还是服务器端?全部内容,希望文章能够帮你解决使用Python“请求”库,如何判断ConnectionError是客户端还是服务器端?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。