gpt4 book ai didi

ruby-on-rails - 如何使用 Rack 接收 JSON 对象

转载 作者:数据小太阳 更新时间:2023-10-29 07:13:01 26 4
gpt4 key购买 nike

我有一个非常简单的 Ruby Rack 服务器,例如:

app = Proc.new do |env| 
req = Rack::Request.new(env).params
p req.inspect
[200, { 'Content-Type' => 'text/plain' }, ['Some body']]
end

Rack::Handler::Thin.run(app, :Port => 4001, :threaded => true)

每当我使用 JSON 对象向服务器发送 POST HTTP 请求时:

{ "session": {
"accountId": String,
"callId": String,
"from": Object,
"headers": Object,
"id": String,
"initialText": String,
"parameters": Object,
"timestamp": String,
"to": Object,
"userType": String } }

我什么也没收到。我可以检测到收到的请求,但无法获取数据。 puts req.inspect 控制台的结果类似于:

"{}"

我应该如何获取数据?

我试图用类似的东西来改变它:

request  = Rack::Request.new env
object = JSON.parse request.body
puts JSON.pretty_generate(object)

但我收到以下警告:

!! Unexpected error while processing request: can't convert StringIO into String

最佳答案

看来我应该使用类似的东西:

msg = JSON.parse env['rack.input'].read 

然后只需在 msg 散列中使用 params

至少它对我有用。

关于ruby-on-rails - 如何使用 Rack 接收 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9707034/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com