web-dev-qa-db-ja.com

urllib2.request()呼び出しでタイムアウトを設定する

urllib2.request()にタイムアウトを設定する必要があります。

datarequestパラメータを使用しているため、urllib2.urlopen()を使用していません。どうすれば設定できますか?

18
eran

urlopendataPOSTパラメータを受け入れますが、次のようにurlopenオブジェクトに対してRequestを呼び出すことができます。

import urllib2
request = urllib2.Request('http://www.example.com', data)
response = urllib2.urlopen(request, timeout=4)
content = response.read()
43
Jared

それでも、urlopenの使用を避け、次のように続行できます。

request = urllib2.Request('http://example.com')
response = opener.open(request,timeout=4)
response_result = response.read()

これも機能します:)

3
Giorgoc

素晴らしい requests を使ってみませんか?多くの時間を節約できます。

デプロイが心配な場合は、プロジェクトにコピーしてください。

例えば。リクエストの:

>>> requests.post('http://github.com', data={your data here}, timeout=10)
2
Alex