2011-03-17 3 views
4

PycURL을 사용하여 REST API에 대한 GET 요청을하려고합니다. 매개 변수를 전달하지 않으면 요청을 성공적으로 수행 할 수 있습니다. 내가 로그인 매개 변수를 포함하는 GET 요청을 할PyCurl을 사용하여 GET 매개 변수를 설정하는 방법은 무엇입니까?

curl.setopt (pycurl.POSTFIELDS, post_data)

: 나는 또한 다음을 수행하여 POST 요청을 할 수 있어요. 위의 행을 사용하여 매개 변수를 전달하려고 시도하면 대신 POST를 시도합니다. 로그인 매개 변수를 설정하고 GET 요청을하는 방법을 알아낼 수 없습니다.

도움을 주시면 감사하겠습니다.

답변

1

는 다음과 같이 URL에 이러한 매개 변수를 전달해야합니다, 그래서 더 pycurl.GETFIELDS 옵션은없는 것 같다 : 당신이 PARAM1, PARAM2, 값 1과 값 2 중으로 교체해야

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

post_data에 저장 한 값입니다.

11

브라우저의 일반 URL처럼 GET 매개 변수가 인코딩되어 URL에 ? 뒤에 추가됩니다. 파이썬의 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 ... 
+0

이 답변 외에도 HTTPGET 옵션을 추가 할 수 있습니다. c.setopt (pycurl.HTTPGET, 1) – Vyke

+0

import urllib.parse, urllib.parse.urlencode (params) in python 3 –

+0

python3을 지원하기 위해이 답변을 업데이트 해 주셔서 감사합니다. –

관련 문제