我正在尝试为一个以 HTTP 流(也称为 HTTP 服务器推送)形式提供数据的站点编写客户端。但是,urllib2.urlopen() 会获取当前状态的流,然后关闭连接。我尝试跳过 urllib2 并直接使用 httplib,但这似乎具有相同的行为。
该请求是一个包含五个参数的 POST 请求。但是,不需要 cookie 或身份验证。
有没有办法让流保持打开状态,以便在每个程序循环中检查新内容,而不是等待整个内容每隔几秒重新下载一次,从而引入延迟?
最佳答案
你可以试试 requests图书馆。
import requests
r = requests.get('http://httpbin.org/stream/20', stream=True)
for line in r.iter_lines():
# filter out keep-alive new lines
if line:
print line
您还可以添加参数:
import requests
settings = { 'interval': '1000', 'count':'50' }
url = 'http://agent.mtconnect.org/sample'
r = requests.get(url, params=settings, stream=True)
for line in r.iter_lines():
if line:
print line
关于python - 使用 Python 读取 HTTP 服务器推送流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2716788/