构建HTTP GET请求参数

构建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() 
+0

,能不能请您提供更详尽的答案吗?我是python的新手,我想看看它是如何一步一步完成的。谢谢 – 2011-02-13 16:03:37

+0

请检查现有的Python文档包含足够的示例:http://docs.python.org/library/urllib2.html – 2011-02-13 17:14:41

这里有一个简单的泛型类,你可以(重新)使用方法:

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 

所以,你可以这样做: