urllib2 中请求"data"和"params"对应的参数是什么?



我已经成功地实现了python请求模块,以向具有指定

resp = requests.request("POST", url, proxies, data, headers, params, timeout)

但是,由于某种原因,我现在需要使用python urllib2模块进行查询。对于urllib2.urlopen的参数"data",我的理解是它有助于形成查询字符串(与请求"params"相同)。另一方面,requests.request 的参数"data"用于填充请求正文。

在搜索和阅读了许多帖子、示例和文档后,我仍然无法弄清楚 urllib2 中 requests.request 的"数据"的相应参数是什么

任何建议都非常感谢!谢谢。

-扬顿

它叫什么并不重要 - 重要的是在正确的位置传递它。 例如,在此示例中,POST 数据是一个字典(名称可以是任何内容)。字典是 urlencoding 的,urlencode 名称也可以是任何东西,但我选择了"postdata",这是 POST 的数据

import urllib   # for the urlencode
import urllib2
searchdict = {'q' : 'urllib2'}
url = 'https://duckduckgo.com/html'
postdata = urllib.urlencode(searchdict)
req = urllib2.Request(url, postdata)
response = urllib2.urlopen(req)
print response.read()
print response.getcode()

如果你的POST数据是纯文本(不是Python类型,如字典),它可以在没有urllib.urlencode的情况下工作:

import urllib2
searchstring = 'q=urllib2'
url = 'https://duckduckgo.com/html'
req = urllib2.Request(url, searchstring)
response = urllib2.urlopen(req)
print response.read()
print response.getcode()

最新更新