import urllib2,urllib
params = {}
resp = urllib2.urlopen('http://somewhere/',urllib.urlencode(params))
urlopen() メソッドでは、メソッド 'get' または 'post' の argv がありません。このメソッドは、必要な URL によって「get」または「post」を把握できますか
import urllib2,urllib
params = {}
resp = urllib2.urlopen('http://somewhere/',urllib.urlencode(params))
urlopen() メソッドでは、メソッド 'get' または 'post' の argv がありません。このメソッドは、必要な URL によって「get」または「post」を把握できますか
ドキュメントから:
urllib2.urlopen(url[, data][, timeout])
data
サーバーに送信する追加データを指定する文字列、またはNone
そのようなデータが必要ない場合。data
現在、HTTP リクエストは;を使用する唯一のものです。パラメータが指定されている場合、HTTP リクエストはPOST
ではなく に なります。標準形式のバッファである必要があります。この 関数は、2 タプルのマッピングまたはシーケンスを受け取り、この形式の文字列を返します。urllib2 モジュール は、Connection:close ヘッダーが含まれたリクエストを送信します。GET
data
data
application/x-www-form-urlencoded
urllib.urlencode()
HTTP/1.1
指定されたパラメーターに基づいて計算しますGET
。POST
あなたの場合POST
、paramsの辞書が提供されているためです。
使用POST
するには、このようにすることができます(ドキュメントから)
import urllib
params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
f = urllib.urlopen("http://www.musi-cal.com/cgi-bin/query", params)
print f.read()
ここで辞書を関数に渡すことに注意してください。
使用するGET
には、単に URL を渡すだけです (ここでは、URL lib に渡す代わりに、文字列補間を使用して URL にパラメーターを追加します)。
import urllib
params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
f = urllib.urlopen("http://www.musi-cal.com/cgi-bin/query?%s" % params)
print f.read()