构建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