我想流式传输"无限" (即连续)使用HTTP Post的数据量。基本上,我想发送POST请求标头,然后流内容(内容长度未知)。我查看http://docs.python-requests.org/en/latest/user/advanced/,似乎有设施。我遇到的一个问题是它在文件中说#34;要进行流式传输和上传,只需为您的身体提供类似文件的对象即可。什么"类似文件"对象的意思?我希望流式传输的数据来自传感器。如何实现"类文件"将从传感器读取数据并将其传递给调用者的对象?
对不起我在这里的无知,但我感觉我的方式通过python(即我一起学习。嗯..看起来像一条蛇。它感觉滑溜。试图避免生物的结束......: - ))。
提前感谢您的帮助。
朗高。
答案 0 :(得分:1)
只是想给你一个答案,以便你可以关闭你的问题:
听起来你真正想要的是python websockets。在内部,您发出HTTP请求以升级到websocket的连接,并且在握手之后您可以自由地以两种方式流式传输数据。 Python使这很简单,for example:
from flask import Flask
from flask_sockets import Sockets
app = Flask(__name__)
sockets = Sockets(app)
@sockets.route('/echo')
def echo_socket(ws):
while True:
message = ws.receive()
ws.send(message)
@app.route('/')
def hello():
return 'Hello World!'
Websockets确实支持全双工通信,但您似乎只对服务器到客户端部分感兴趣。在这种情况下,您可以使用ws.send()
来传输数据。我不确定这是否是您正在寻找的,但它应该提供解决方案。
答案 1 :(得分:0)
类文件对象是一个带有" read"的对象。接受大小并为下一个数据块返回二进制数据缓冲区的方法。
如果您想从文件系统中读取,那么看起来就像文件对象一样。
另一个常见的情况是StringIO类,它读写缓冲区。
在您的情况下,您需要实现一个"类似文件的对象"你自己,只需从传感器读取。
class Sensor(object):
def __init__(self, sensor_thing)
self.sensor_thing = sensor_thing
def read(self, size):
return self.convert_to_binary(self.sensor_thing.read_from_sensor())
def convert_to_binary(self, sensor_data)
....