Python and urllib2: how to make a GET request with parameters

前端 未结 3 1823
花落未央
花落未央 2021-01-31 08:18

I\'m building an \"API API\", it\'s basically a wrapper for a in house REST web service that the web app will be making a lot of requests to. Some of the web service calls need

相关标签:
3条回答
  • 2021-01-31 08:39

    Is urllib.urlencode() not enough?

    >>> import urllib
    >>> urllib.urlencode({'foo': 'bar', 'bla': 'blah'})
    foo=bar&bla=blah
    

    EDIT:

    You can also update the existing url:

      >>> import urlparse, urlencode
      >>> url_dict = urlparse.parse_qs('a=b&c=d')
      >>> url_dict
      {'a': ['b'], 'c': ['d']}
      >>> url_dict['a'].append('x')
      >>> url_dict
      {'a': ['b', 'x'], 'c': ['d']}
      >>> urllib.urlencode(url_dict, True)
      'a=b&a=x&c=d'
    

    Note that parse_qs function was in cgi package before Python 2.6

    EDIT 23/04/2012:

    You can also take a look at python-requests - it should kill urllibs eventually :)

    0 讨论(0)
  • 2021-01-31 08:39
    import urllib
    data = {}
    data["val1"] = "VALUE1"
    data["val2"] = "VALUE2"
    data["val3"] = "VALUE3"
    url_values = urllib.urlencode(data)
    url = "https://www.python.org"
    print url + "?" + url_values
    

    The url_values is an encoded values and can be used to post to the server along with url as a query string(url+"?"+url_values).

    0 讨论(0)
  • 2021-01-31 08:47

    urllib.urlencode

    And yes, the urllib / urllib2 division of labor is a little confusing in Python 2.x.

    0 讨论(0)
提交回复
热议问题