我认为当你使用帖子时,帖子发送了HTTP标题中的所有信息(显然我没有充分了解这个主题),所以我很困惑你为什么要将urlencode()数据发送到{{ 1}}格式。使用POST时,这种格式如何发挥作用?:
key=value&key2=value2
但
# Fail
data = {'name': 'John Smith'}
urllib2.urlopen(foo_url, data)
答案 0 :(得分:9)
它与“Content-Type”标题有关:客户端必须知道POST数据是如何编码的,或者它如何知道如何解码?
执行此操作的标准方法是通过 application / x-www-form-urlencoded 编码格式。
现在,如果问题是“为什么我们需要编码?”,答案是“因为我们需要能够描述HTTP容器中的有效负载”。
答案 1 :(得分:2)
数据必须采用标准 application / x-www-form-urlencoded 格式。 urlencode
将你的args转换为url编码的字符串。