我試圖做一個很簡單的事情,建立一個包含端口號和一些參數的GET請求的URL,因爲它遵循http://localhost:8080/read?date=whatever
構建HTTP GET請求參數
我嘗試了好幾種沒有成功的方式,它不應該太困難,但我不能想出一個解決方案。
我希望有人幫助我,這將大大提前
我試圖做一個很簡單的事情,建立一個包含端口號和一些參數的GET請求的URL,因爲它遵循http://localhost:8080/read?date=whatever
構建HTTP GET請求參數
我嘗試了好幾種沒有成功的方式,它不應該太困難,但我不能想出一個解決方案。
我希望有人幫助我,這將大大提前
以前的答案是沒有問題的,你居然問讚賞
感謝。試試這個:
import urllib
myPort = "8080"
myParameters = { "date" : "whatever", "another_parameters" : "more_whatever" }
myURL = "http://localhost:%s/read?%s" % (myPort, urllib.urlencode(myParameters))
基本上,urllib有一個功能可以做你想做的事情,叫做urlencode。傳遞一個包含你想要的參數/ parameter_value對的字典,它將在'?'之後生成你需要的正確參數字符串。在你的網址。
data = urllib2.urlopen(url).read()
這裏有一個簡單的泛型類,你可以(重新)使用方法:
import urllib
class URL:
def __init__(self, host, port=None, path=None, params=None):
self.host = host
self.port = port
self.path = path
self.params = params
def __str__(self):
url = "http://" + self.host
if self.port is not None:
url += ":" + self.port
url += "/"
if self.path is not None:
url += self.path
if self.params is not None:
url += "?"
url += urllib.urlencode(self.params)
return url
所以,你可以這樣做:
,能不能請您提供更詳盡的答案嗎?我是python的新手,我想看看它是如何一步一步完成的。謝謝 – 2011-02-13 16:03:37
請檢查現有的Python文檔包含足夠的示例:http://docs.python.org/library/urllib2.html – 2011-02-13 17:14:41