Как установить параметры GET с PyCurl? - PullRequest
5 голосов
/ 18 марта 2011

Я пытаюсь сделать запрос GET для API REST, используя PycURL. Я могу успешно сделать запрос, если я не передам никаких параметров. Я также могу сделать запрос POST, выполнив следующие действия:

curl.setopt (pycurl.POSTFIELDS, post_data)

Я хочу сделать запрос на получение, который включает параметры входа в систему. Если я пытаюсь использовать строку выше для передачи параметров, вместо этого он пытается сделать POST. Я не могу понять, как установить параметры входа и сделать запрос GET.

Любая помощь будет оценена.

Ответы [ 2 ]

12 голосов
/ 18 марта 2011

Как и обычный 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 ...
1 голос
/ 18 марта 2011

Кажется, что нет опции pycurl.GETFIELDS, поэтому вам придется передать эти параметры в URL, например:

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

, где вы должны заменить param1, param2, value1 и value2какие значения вы сохранили в post_data.

...