【发布时间】:2014-05-08 06:09:15
【问题描述】:
我在 python 中使用 urllib 库, 对于 URL 中的任何错误,我使用 try catch 块来捕获它。 但有时我在 url 中得到空数据,如何检查或验证来自 URL 的空数据。并且还使用超时,给定 25 秒。给 25 秒好还是应该低于 10 秒?
【问题讨论】:
我在 python 中使用 urllib 库, 对于 URL 中的任何错误,我使用 try catch 块来捕获它。 但有时我在 url 中得到空数据,如何检查或验证来自 URL 的空数据。并且还使用超时,给定 25 秒。给 25 秒好还是应该低于 10 秒?
【问题讨论】:
您可以使用适合您的程序的任何超时长度。如果您预计它有时可能需要您查询的任何 URL 最多 25 秒才能响应,那么 25 是合适的。如果响应时间不应该超过几秒钟,并且您可以放心地假设如果花费的时间超过几秒钟,则 URL 一定是死的,那么您可以降低超时。总的来说,我认为对超时保持保守是个好主意。超时时间过长时最好让错误情况慢一点,而不是超时时间过短时错误地触发错误。
您可以通过执行以下操作来检查来自 urllib2 的空响应
fh = urllib2.urlopen(url)
response = fh.read()
if not response:
# Do whatever error handling you want. You don't necessarily need to raise Exception.
raise Exception("Empty response")
这就是你要找的吗?
【讨论】:
response.info().getheader('Content-Length'),以获取响应长度