擅长:python、mysql、java
<p>首先,没有理由在新代码中使用<code>urllib</code>,建议使用<code>urllib2</code>。在</p>
<p>据我所知,只有在出现错误104时才想重试。在python中通常是这样做的:</p>
<pre><code>import time, urllib.request, urllib2.error
RETRY_DELAY = 2
# build req here
# ...
for x in range(10): # Always limit number of retries
try:
resp = urllib.request.urlopen(req)
except urllib.error.URLError:
if e.reason[0] == 104: # Will throw TypeError if error is local, but we probably don't care
time.sleep(RETRY_DELAY)
else:
raise # re-raise any other error
else:
break # We've got resp sucessfully, stop iteration
</code></pre>