これは便利。
指定したステータスコードを返す
https://httpbin.org/status/:code
をたたくと、指定した:codeをステータスコードとして返してくれます。
urllib3でステータスコードが400、500番台の場合はバックオフしてリトライするコードをhttpbinで動作確認。
from urllib3.util import Retry from urllib3 import PoolManager http = PoolManager(retries=Retry(total=4, backoff_factor=1.0, status_forcelist=range(400, 600))) response = http.request('GET', 'https://httpbin.org/status/500') print ("status code=%s." % response.status)
指定した秒だけ待ってレスポンスを返す
https://httpbin.org/delay/:n
をたたくと、min(n, 10)秒間待ってレスポンスを返してくれます。
urllib3のTimeoutの動作確認用ソースです。5秒たつとtimeoutエラーが発生します。
from urllib3.util import Retry, Timeout from urllib3 import PoolManager http = PoolManager(timeout=Timeout(5)) response = http.request('GET', 'https://httpbin.org/delay/8', retries=False) print ("status code=%s." % response.status)
timeoutしても頑張るバージョン。
from urllib3.util import Retry, Timeout from urllib3 import PoolManager timeout = Timeout(5) retries = Retry(total=4, backoff_factor=1.0, status_forcelist=range(400, 600)) http = PoolManager(timeout=timeout, retries=retries) response = http.request('GET', 'https://httpbin.org/delay/8') print ("status code=%s." % response.status)
0 件のコメント:
コメントを投稿