qxhgd 发表于 2014-05-22 22:44

关于urllib.urlencode的编码后的顺序问题

代码中的编码顺序是:
data = urllib.urlencode({"message":message,"posttime":posttime,"formhash":formhash,"subject":subject})

但是抓包看到的Post数据的顺序却是:
posttime、message、formhash、subject

非代码产生时,抓包看到的顺序与代码中的顺序一致。


我的疑问是:
1、代码与抓包为何不一致?如何才能一致?
2、Post数据的顺序不同对服务器端的处理,有影响吗?

谢谢各位大侠!

ssfjhh 发表于 2014-05-22 23:55

字典是无序的,如果想要它有序,请使用有序字典OrderedDict

qxhgd 发表于 2014-05-23 08:47

回复 2# ssfjhh


    都怪我基本功不扎实!

    多谢了!

    那这个顺序对HTTP服务器有影响吗?

ssfjhh 发表于 2014-05-23 09:28

回复 3# qxhgd


    这个我不懂,试试吧,不难验证。

timespace 发表于 2014-05-23 10:09

没影响,就像GET的name=value格式,都是顺序无关的。

qxhgd 发表于 2014-05-23 12:38

timespace 发表于 2014-05-23 10:09 static/image/common/back.gif
没影响,就像GET的name=value格式,都是顺序无关的。


学习了,多谢!

ztjfromnowon 发表于 2014-05-29 16:10

字典类型就是无序的
页: [1]
查看完整版本: 关于urllib.urlencode的编码后的顺序问题