import urllib2,urllib
params = {}
resp = urllib2.urlopen('http://somewhere/',urllib.urlencode(params))
在urlopen()方法中,方法'get'或'post'没有argv。 这种方法可以通过所需的网址找出“获取”或“发布”
答案 0 :(得分:1)
urllib2.urlopen(url[, data][, timeout])
data
可以是指定要发送到服务器的其他数据的字符串, 如果不需要此类数据,则为None
。目前HTTP请求是 只有使用data
的人; HTTP请求将是POST
而不是 提供GET
参数时data
。data
应该是缓冲区 标准application/x-www-form-urlencoded
格式。该urllib.urlencode()
函数采用2元组的映射或序列 并以此格式返回一个字符串。 urllib2模块发送HTTP/1.1
使用Connection的请求:包含close标头。
答案 1 :(得分:1)
根据给出的参数,它会计算GET
或POST
。在你的情况下,它将是POST
,因为提供了一个params字典。
使用POST
你可以这样做(来自documentation)
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(这里我们使用字符串插值将params添加到URL而不是将其传递给URL lib)
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()