未实现的选项和常量

pycurl故意不公开libcurl的某些选项和常量。本文档解释了从pycurl中省略的libcurl符号。

*DATA 选项

在LiCURL中, *aDATA 选项集 客户端数据 用于各种回调。每个回调都有一个对应的 *DATA 选择权。

在具有闭包的python语言中,这样的选项是不必要的。例如,以下代码调用实例的 write 对类实例具有完全访问权限的方法:

class Writer(object):
    def __init__(self):
        self.foo = True

    def write(chunk):
        # can use self.foo

writer = Writer()
curl = pycurl.Curl()
curl.setopt(curl.WRITEFUNCTION, writer.write)

从7.19.3版开始,pycurl实现了三个 *DATA 方便选择: WRITEDATAHEADERDATAREADDATA . 这相当于使用 writeread 方法,视情况而定:

# equivalent pairs:
curl.setopt(curl.WRITEDATA, writer)
curl.setopt(curl.WRITEFUNCTION, writer.write)

curl.setopt(curl.HEADERDATA, writer)
curl.setopt(curl.HEADERFUNCTION, writer.write)

curl.setopt(curl.READDATA, reader)
curl.setopt(curl.READFUNCTION, reader.read)

CURLINFO_TLS_SESSION

尚不清楚SSL上下文应该如何向Python代码公开。如果找到用例,就可以实现这个选项。

未记录符号

一些符号出现在libcurl的 symbols in versions 文档,但没有由libcurl记录。这些符号不是由PycURL实现的。

在本文中,以下符号被严重省略:

  • CURLPAUSE_RECV_CONT

  • CURLPAUSE_SEND_CONT