我在raspberry pi3上有一些python脚本的问题 .
我发送一个http请求,很少脚本停止在请求函数上,永远不会退出它 .
代码:
params = json.dumps({"toto: tata"}).encode('utf8')
head = {'content-type': 'application/json'}
req = urllib.request.Request('http://www.toto.com', data = params, headers = head)
try:
response = urllib.request.urlopen(req) # <- here the problem
except:
print("TCP_IP: may not connected to the internet")
有关信息,我使用python3.4,操作系统是Raspbian .
经过几次测试:
-
大部分时间凌晨2点(格林威治标准时间2)出现问题(互联网服务提供商更新?)
-
我通过集线器将覆盆子连接到互联网 . 如果我从集线器上拔下树莓 . 没有问题,脚本在几秒钟后引发异常 . 但如果我从互联网上拔下集线器 . 脚本保持停止(对于操作系统,它始终连接到互联网) .
1 回答
看起来当没有给
urlopen
超时时它永远不会超时(参见here) . 如果你给出一个应该解决问题的超时 .在sidenode上:最好是捕获特定的异常,而不是全部,例如你也会发现ZeroDivisionError之类的东西,你不想去那里 .