我正在尝试使用PycURL发出REST api的GET请求。如果我没有传递任何参数,我能够成功发出请求。我也可以通过执行以下操作来发出POST请求:
curl.setopt(pycurl.POSTFIELDS,post_data)
我想发出包含登录参数的get请求。如果我尝试使用上面的行传递参数,它会尝试进行POST。我无法弄清楚如何设置登录参数并发出GET请求。
任何帮助都将不胜感激。
答案 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¶m2=value2
您应该使用post_data
中存储的值替换param1,param2,value1和value2。