我向Sinatra应用发出了POST请求。我注意到参数作为StringIO到达服务器。可以使用request.body.read
来阅读。但是,它只能读一次。要再次阅读,我需要运行request.body.rewind
(哈哈,Sinatra)。
为什么这样设计?我可以看到这在流数据中很有用,但还有其他应用吗?
答案 0 :(得分:4)
参数在Sinatra中通过params散列可用。 request.body.read
和request.body.rewind
是Rack的一部分,它们实际上并未在Sinatra中实现。我过去最常用的方法是将Sinatra严格用作Web API并序列化/反序列化我的有效负载。