如何在Sinatra中将请求主体传递给其他类?

时间:2011-07-11 04:02:13

标签: json request sinatra

我正在使用Sinatra应用程序来接收服务器请求,我想在一个单独的类中解析它们,我称之为“请求”,但是当我传递请求对象时,正文被丢弃。尝试读取主类中的request.body但是尝试在新类中读取它会生成JSONparser八位字节错误。

在主Sinatra文件中,此测试调用会生成正确的响应:

puts JSON.parse request.body.read

之后,我将请求传递给请求类,并带有以下代码。

req=Request.new(request)

但是在Request类初始化def中,上面相同的“puts”代码会生成错误:

JSON::ParserError - A JSON text must at least contain two octets!:

这两个文件都包含JSON要求。

解决方法相当简单,但如果我能弄清楚为什么它不像我期望的那样工作,我宁愿选择更优雅的解决方案。任何想法都表示赞赏。

1 个答案:

答案 0 :(得分:0)

来自我的测试   Request.new构造函数似乎没有从Request对象

克隆

request.clone正常工作

如果你需要任何极端的话,你需要进行彻底的物体检查