【发布时间】:2018-01-05 22:36:26
【问题描述】:
import aiohttp
import requests
listen_url = "https://somehttpstreamingurl"
headers = {"User-Agent": "stream client"}
async def async_listen():
with aiohttp.ClientSession() as session:
async with await session.get(url=listen_url, headers=headers) as r:
while True:
message = await r.content.readline()
if message:
print(message)
def sync_listen():
with requests.session() as session:
r = session.send(requests.Request(method="GET", url=listen_url, headers=headers), stream=True)
for message in r.iter_lines():
if message:
print(message)
这是我们如何在 Python 中从 http 流中获取数据的两个示例(我使用的是 3.6)
但是在 Java 中我似乎无法做到这一点,并且每次进行的 google 搜索我都会获得服务器端流相关的结果或文件流上传作为结果。 我想编写与上面的 Python 代码等效的 Java 代码,但是在搜索 Java 时,http 流搜索非常混乱,在搜索查询中添加“android”关键字时更糟。 有谁知道如何完成上面 Python 代码的 Java 等效项?
【问题讨论】:
-
您需要一个
Thread对象、一个回调接口和一个while循环。你用这个扩展尝试了什么?此外,Android 上的 HTTP 流式传输只是让您的电池耗尽 -
也许 RxJava 可以帮助github.com/ReactiveX/…
-
我的 api 端点使用 http 流,但是 RxJava 看起来很有前途,谢谢
标签: java android python http http-streaming