2012-06-26 48 views
0

代码:进行urlencode不行

import urllib,urllib2 
url = 'http://www.pythonchallenge.com/pc/def/linkedlist.php' 
print urllib2.urlopen(url).read() 
print urllib2.urlopen(url,urllib.urlencode({'nothing':12345})).read() 

我遇到的问题是,为什么两个“打印”输出相同的内容, 凡在我的代码是什么问题?

+1

显然,你正在联系该网站是忽略了字符串'什么= 12345'您在POST请求发送。对我来说似乎很合理。 –

+2

我只是喜欢pythonchallenge是用PHP编写的。 – geoffspear

+0

@SvenMarnach你是对的 – shellfly

回答

1

urlopen的第二个参数是要发布的数据。如果您想URL参数,你需要创建的网址:

print urllib2.urlopen("%s?%s" % (url,urllib.urlencode({'nothing':12345}))).read() 
+0

但在python在线mannul中,urlopen函数可以赋予一个可选的第二个参数,它代表'data' – shellfly

+0

eh ..sorry.url参数与POST数据不一样吗? – shellfly

+2

如果您应该使用POST方法访问资源,那么数据参数就是您想要的。如果你应该使用URL查询参数“GET”,那么你需要按照我的建议 – MattH