如何使用PyCurl设置GET参数?

5 投票
2 回答
13921 浏览
提问于 2025-04-16 13:55

我正在尝试使用PycURL对一个REST API进行GET请求。如果我不传递任何参数,我可以成功发起请求。我也可以通过以下方式进行POST请求:

curl.setopt(pycurl.POSTFIELDS, post_data)

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

任何帮助都非常感谢。

2 个回答

1

看起来pycurl没有GETFIELDS这个选项,所以你需要把这些参数直接放在网址里,像这样:

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

在这里,你需要把param1、param2、value1和value2替换成你在post_data里存的值。

15

就像在浏览器上输入的普通网址一样,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 ...

撰写回答