urllib2.request()
にタイムアウトを設定する必要があります。urllib2.request()呼び出しでタイムアウトを設定する
私はdata
のパラメータをrequest
としているので、私はurllib2.urlopen()
を使用しません。どうすれば設定できますか?
urllib2.request()
にタイムアウトを設定する必要があります。urllib2.request()呼び出しでタイムアウトを設定する
私はdata
のパラメータをrequest
としているので、私はurllib2.urlopen()
を使用しません。どうすれば設定できますか?
urlopen
がPOST
ためdata
のparamを受け入れていますが、あなたがこのようなRequest
オブジェクトにurlopen
を呼び出すことができ、
import urllib2
request = urllib2.Request('http://www.example.com', data)
response = urllib2.urlopen(request, timeout=4)
content = response.read()
'timeout'は何単位ですか? –
@MöbiusStripMallSeconds([manual](https://docs.python.org/2/library/urllib2.html)) – carla
なぜ素晴らしいを使用しないでくださいrequests?多くの時間を節約できます。
配備が心配な方は、プロジェクトにコピーしてください。
例:
>>> requests.post('http://github.com', data={your data here}, timeout=10)
まだ、あなたもまた、urlopenを使用して回避し、次のように進むことができます:
要求のrequest = urllib2.Request('http://example.com')
response = opener.open(request,timeout=4)
response_result = response.read()
urlopenを使用しない利点は何ですか? – NumenorForLife
@ jsc123: 'opener'は' build_opener() 'を使っていくつかのリクエストのパラメータを設定できるようになっているようです(http:// ru。 stackoverflow.com/a/463620/23044)。また、複数のスレッドを使用する場合( 'urlopen()'グローバルデータを使用する場合)、明示的な 'opener'を作成する必要があります。 – jfs
タイムアウトをグローバルに設定するには、 'socket.setdefaulttimeout()'を使用してください。 – Mark