3

我一直在为我的项目https://pypi.python.org/pypi/tidehunter使用 PycURL,它利用pycurl.WRITEFUNCTION钩子以可控的方式使用传入的 HTTP 流。用例可以在项目页面上找到,或者像这样的技术:

def _on_data_receive(self, data):
    self.buffer += data

    if data.endswith('\r\n'):  # or any valid chunk delimiter
        # Do something about self.buffer
        print self.buffer

    if True:  # some valid condition to disconnect
        return -1  # the way to stop the stream, would raise pycurl.error

我正在考虑退出 PycURL,因为我用来终止按需流的解决方案相当老套(也很高兴使用 PycURL 为该用例获得更好的解决方案)。也是requests一个使用起来更愉快的库。

那么有什么requests我可以利用的东西来实现相同的目的吗?或者也许它也是我需要探索的传入流处理程序。

提前致谢。

4

1 回答 1

1

编辑2016-03-22:为自私道歉。

当前答案

以下代码段是我应用完全替换pycurlusing的代码段python-requests。简而言之,只需提供stream=True论据。

import requests

def tide_on(url):
    r = requests.get(url, stream=True, **kwargs)

    for line in r.iter_lines():
        # wish to stop after consuming just one line
        print(line)
        break

    r.close()

上一个“答案”

发言时的当前版本requests确实很容易实现我的要求。非常感谢背后的团队requests

从 1.0 版开始,我完全替换PycURLrequestsintidehunter并且效果很好!

再次感谢以上所有评论:)

于 2014-01-23T04:26:01.340 回答