如何使用PyCurl设置GET参数?

时间:2011-03-17 21:39:15

标签: python rest get pycurl

我正在尝试使用PycURL发出REST api的GET请求。如果我没有传递任何参数,我能够成功发出请求。我也可以通过执行以下操作来发出POST请求:

curl.setopt(pycurl.POSTFIELDS,post_data)

我想发出包含登录参数的get请求。如果我尝试使用上面的行传递参数,它会尝试进行POST。我无法弄清楚如何设置登录参数并发出GET请求。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:12)

就像浏览器上的普通网址一样,GET参数会在?之后编码并附加到网址。使用python的urllib.urlencode,你可以这样做:

import urllib
import pycurl

url = 'http://www.google.com/search'
params = {'q': 'stackoverflow answers'}

c = pycurl.Curl()
c.setopt(c.URL, url + '?' + urllib.urlencode(params))
... # and so on and so forth ...

答案 1 :(得分:1)

似乎没有pycurl.GETFIELDS选项,所以你必须在url中传递这些参数,如下所示:

http://your_url/some_path?param1=value1&param2=value2

您应该使用post_data中存储的值替换param1,param2,value1和value2。