【问题标题】:Receiving POST with Rack ruby server使用 Rack ruby​​ 服务器接收 POST
【发布时间】:2012-03-09 09:03:30
【问题描述】:

我有一个简单的 ruby​​ 服务器,例如:

app = Proc.new do |env| 
  puts 'am I receiving anything ? ' 
  req = Rack::Request.new(env).params 
  puts "if yes any parameters ? : #{req.inspect}" 
end 

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

我应该如何接收带有参数的 POST 请求,我正在使用 post 发送一些 JSON 对象,但是当我将 POST 发送到 localhost:4001 时,我什么也看不到。

【问题讨论】:

  • 我的回答对你有帮助吗?

标签: ruby-on-rails ruby rack


【解决方案1】:

那是因为您没有返回响应。你的回复是空的,所以你什么都看不到。您可以通过 cURL 进行测试:

$ curl -F 'foo=bar' localhost:4001
curl: (52) Empty reply from server

应用内的响应:

am I receiving anything ? 
if yes any parameters ? : {"foo"=>"bar"}

尝试返回一些东西:

app = Proc.new do |env|
  puts 'am I receiving anything ? '
  req = Rack::Request.new(env).params
  puts "if yes any parameters ? : #{req.inspect}"
  [200, { 'Content-Type' => 'text/plain' }, ['Some body']]
end

【讨论】:

  • 所以我可以使用相同的 Rack::Request.new(env).params 接收 GET 和 POST 吗?即使它就像用 POST 发送的 JSON 对象?或任何其他序列化类型?
  • 是的。 Rack::Request 不关心使用了什么类型的请求方法。这取决于用户添加条件
猜你喜欢
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 2023-04-01
  • 2018-08-03
  • 2021-06-26
相关资源
最近更新 更多