5

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

curl.setopt(pycurl.POSTFIELDS,post_data)

我想发出一个包含登录参数的获取请求。如果我尝试使用上面的行来传递参数,它会尝试进行 POST。我不知道如何设置登录参数并发出 GET 请求。

任何帮助,将不胜感激。

4

2 回答 2

15

就像浏览器上的普通 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 ...
于 2011-03-17T21:48:21.410 回答
1

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

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

您应该将 param1、param2、value1 和 value2 替换为您存储在post_data.

于 2011-03-17T21:46:57.813 回答