我想向实时流发出HTTPS请求并保持连接打开,以便我可以继续从中读取内容并进行处理。
我想在python中编写脚本。我不确定如何在我的脚本中保持连接打开。我用curl测试了端点,使连接成功打开。但是我如何在Python中完成它。目前,我有以下代码:
c = httplib.HTTPSConnection('userstream.twitter.com')
c.request("GET", "/2/user.json?" + req.to_postdata())
response = c.getresponse()
我从哪里开始?
谢谢!
答案 0 :(得分:3)
看起来您的实时流是作为一个无休止的HTTP GET响应提供的,是吗?如果是这样,你可以使用python的内置urllib2.urlopen()。它返回一个类似文件的对象,您可以从中读取任意内容,直到服务器挂断您为止。
f=urllib2.urlopen('https://encrypted.google.com/')
while True:
data = f.read(100)
print(data)
请注意,尽管urllib2会说https,但它不会验证服务器证书,因此您可能需要尝试使用pycurl或urlgrabber这样的附加包来提高安全性。 (我不确定urlgrabber是否支持https。)
答案 1 :(得分:1)
https的任何python标准库中都没有连接保持活动功能。最成熟的选项可能是urllib3
答案 2 :(得分:0)
httplib2支持此功能。 (我认为这是最成熟的选择,还不知道urllib3,所以TokenMacGuy可能仍然是正确的)
编辑:虽然httplib2支持持久连接,但我认为你不能真正使用它(即一个长响应与同一连接上的多个请求),我现在意识到你可能需要它。