如何在pycurl和Python中使用CURLOPT_MAX_RECV_SPEED_LARGE选项?

时间:2013-07-11 15:27:51

标签: python curl pycurl

我正在尝试将CURL's CURLOPT_MAX_RECV_SPEED_LARGE option与pycurl库一起使用。这是我的测试代码:

import sys
import pycurl


class Test:
    def __init__(self):
        self.contents = ''

    def body_callback(self, buf):
        self.contents = self.contents + buf

print >>sys.stderr, 'Testing', pycurl.version

t = Test()
c = pycurl.Curl()
c.setopt(c.URL, 'http://curl.haxx.se/dev/')
c.setopt(c.WRITEFUNCTION, t.body_callback)
c.setopt(c.CURLOPT_MAX_RECV_SPEED_LARGE, 1024)
c.perform()
c.close()

print t.contents

它会产生错误;似乎没有为此选项定义库常量。

Traceback (most recent call last):
  File "/Users/nilayanand/Documents/workspace/photofeed/photofeed-desktop/test/curl.py", line 18, in <module>
    c.setopt(c.CURLOPT_MAX_RECV_SPEED_LARGE, 1024)
AttributeError: CURLOPT_MAX_RECV_SPEED_LARGE

如何在pycurl中使用CURLOPT_MAX_RECV_SPEED_LARGE选项?

2 个答案:

答案 0 :(得分:4)

CURLOPT_MAX_RECV_SPEED_LARGE选项的属性不包含CURLOPT_前缀,它只是名为MAX_RECV_SPEED_LARGE。如果您更正使用它的行,您的代码将起作用:

c.setopt(c.MAX_RECV_SPEED_LARGE, 1024)

答案 1 :(得分:0)

我不确定这会有效,但您可以尝试更改此行

c.setopt(c.CURLOPT_MAX_RECV_SPEED_LARGE, 1024)

这一行

c.setopt(CURLOPT_MAX_RECV_SPEED_LARGE, 1024)