【发布时间】:2011-07-17 18:22:43
【问题描述】:
我正在尝试使用 PycURL 对 REST api 发出 GET 请求。如果我不传递任何参数,我能够成功发出请求。我还可以通过执行以下操作来发出 POST 请求:
curl.setopt(pycurl.POSTFIELDS, post_data)
我想发出一个包含登录参数的获取请求。如果我尝试使用上面的行来传递参数,它会尝试进行 POST。我不知道如何设置登录参数并发出 GET 请求。
任何帮助将不胜感激。
【问题讨论】:
我正在尝试使用 PycURL 对 REST api 发出 GET 请求。如果我不传递任何参数,我能够成功发出请求。我还可以通过执行以下操作来发出 POST 请求:
curl.setopt(pycurl.POSTFIELDS, post_data)
我想发出一个包含登录参数的获取请求。如果我尝试使用上面的行来传递参数,它会尝试进行 POST。我不知道如何设置登录参数并发出 GET 请求。
任何帮助将不胜感激。
【问题讨论】:
似乎没有 pycurl.GETFIELDS 选项,因此您必须在 url 中传递这些参数,如下所示:
http://your_url/some_path?param1=value1¶m2=value2
您应该将 param1、param2、value1 和 value2 替换为您存储在 post_data 中的任何值。
【讨论】:
就像浏览器上的普通 URL 一样,GET 参数被编码并在? 之后附加到 URL。使用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 ...
【讨论】: