Python:urllib2.urlopen(url,data)为什么你要urllib.urlencode()数据?

时间:2010-02-03 15:20:46

标签: python urllib2 urllib

我认为当你使用帖子时,帖子发送了HTTP标题中的所有信息(显然我没有充分了解这个主题),所以我很困惑你为什么要将urlencode()数据发送到{{ 1}}格式。使用POST时,这种格式如何发挥作用?:

key=value&key2=value2

# Fail
data = {'name': 'John Smith'}
urllib2.urlopen(foo_url, data)

2 个答案:

答案 0 :(得分:9)

它与“Content-Type”标题有关:客户端必须知道POST数据是如何编码的,或者它如何知道如何解码?

执行此操作的标准方法是通过 application / x-www-form-urlencoded 编码格式。

现在,如果问题是“为什么我们需要编码?”,答案是“因为我们需要能够描述HTTP容器中的有效负载”。

答案 1 :(得分:2)

数据必须采用标准 application / x-www-form-urlencoded 格式。 urlencode将你的args转换为url编码的字符串。