pycurl: параметр RETURNTRANSFER не существует

Я использую pycurl для доступа к веб-API JSON, но когда я пытаюсь использовать следующее:

ocurl.setopt(pycurl.URL, gaurl)       # host + endpoint
ocurl.setopt(pycurl.RETURNTRANSFER, 1)
ocurl.setopt(pycurl.HTTPHEADER, gaheader) # Send extra headers
ocurl.setopt(pycurl.CUSTOMREQUEST, "POST") # HTTP POST req
ocurl.setopt(pycurl.CONNECTTIMEOUT, 2)

и выполнить скрипт, он терпит неудачу.

File "getdata.py", line 46, in apicall
ocurl.setopt(pycurl.RETURNTRANSFER, 1)
AttributeError: 'module' object has no attribute 'RETURNTRANSFER'

Я понятия не имею, что происходит, и почему RETURNTRANSFER не существует, в то время как все остальные варианты существуют.


person Jonathan Prior    schedule 16.05.2009    source источник


Ответы (3)


В руководстве показано, как используется примерно так:

>>> import pycurl
>>> import StringIO
>>> b = StringIO.StringIO()
>>> conn = pycurl.Curl()
>>> conn.setopt(pycurl.URL, 'http://www.example.org')
>>> conn.setopt(pycurl.WRITEFUNCTION, b.write)
>>> conn.perform()
>>> print b.getvalue()
<HTML>
<HEAD>
  <TITLE>Example Web Page</TITLE>
</HEAD>
<body>
<p>You have reached this web page by typing &quot;example.com&quot;,
&quot;example.net&quot;,
  or &quot;example.org&quot; into your web browser.</p>
<p>These domain names are reserved for use in documentation and are not availabl
e
  for registration. See <a href="http://www.rfc-editor.org/rfc/rfc2606.txt">RFC

  2606</a>, Section 3.</p>
</BODY>
</HTML>

Кажется немного окольным путем, но я не большой поклонник PycURL...

person Paolo Bergantino    schedule 16.05.2009
comment
Да, это прекрасно работает. Интересно, почему бы им просто не реализовать RETURNTRANSFER для начала. - person Jonathan Prior; 16.05.2009

CURLOPT_RETURNTRANSFER не является параметром libcurl, он предоставляется в привязке PHP/CURL.

person Daniel Stenberg    schedule 16.05.2009

Вы пытались выполнить print dir(pycurl) и посмотреть, существует ли параметр в списке атрибутов?

person Nadia Alramli    schedule 16.05.2009