为什么Sinatra需要回复请求体?

Mar*_*Lau 7 request sinatra

我向Sinatra应用程序发出了POST请求.我注意到参数作为StringIO到达服务器.它可以使用阅读request.body.read.但是,它只能读一次.要再读一遍,我需要跑request.body.rewind(哈哈,辛纳屈).

为什么这样设计?我可以看到这在流数据中很有用但是还有其他应用吗?

big*_*can 5

参数可通过 params 散列在 Sinatra 中使用。 request.body.read并且request.body.rewind是 Rack 的一部分,它们实际上并未在 Sinatra 中实现。我过去最常用的方法是将 Sinatra 严格用作 Web API 并序列化/反序列化我的有效负载。

  • 问题问为什么:我想阅读一个答案(我投票赞成这个问题) (3认同)