2012-06-26 91 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