开发者

How, in Sinatra, to pass a Request Body to other classes?

开发者 https://www.devze.com 2023-03-19 11:53 出处:网络
I\'m using a Sinatra app to receive server requests and I want to dissect them in a separate class I call \"request\", but when I pass the request object the body gets dropped.Trying to read the reque

I'm using a Sinatra app to receive server requests and I want to dissect them in a separate class I call "request", but when I pass the request object the body gets dropped. Trying to read the request.body in the main class works but trying to read it in the new class generates a JSONparser octet error.

In the main Sinatra file, this test call generates the correct response:

puts JSON.parse request.body.read

after, I pass the request to the Request Class wi开发者_开发知识库th the code below.

req=Request.new(request)

But in the Request class initialization def, the same "puts" code above generates the error:

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

Both files include the JSON requirement.

A work around is fairly simple but I would prefer the more elegant solution if I could figure out why it is not working as I expect. Any thoughts are appreciated.


from my tests the Request.new constructor doesn't seem to clone from Request object

request.clone works proper

you need to do the thorough object inspection if you need anything extreme

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号