2010-04-15 60 views
2

我正在用Mongrel實現一個使用Ruby的小型HTTP服務器。我的代碼目前看起來像這樣:如何獲取HTTPRequest POST數據?

require 'mongrel.rb' 

class SimpleHandler < Mongrel::HttpHandler 
    def process(request, response) 
    puts request.body # outputs #<StringIO:0xb7656e74> 
    response.start(200) do |head,out| 
     head["Content-Type"] = "application/ocsp-responder" 
     out.write("hello!\n") 
    end 
    end 
end 

h = Mongrel::HttpServer.new("127.0.0.1", "5000") 
h.register("/", SimpleHandler.new) 
h.run.join 

正如您在我的示例中看到的,request.body不輸出POST數據。我怎麼才能得到它?

回答

3

StringIO#read應該這樣做:

puts request.body.read 
+0

我能得到使用request.body.string數據,但您的解決方案的工作原理也是如此。謝謝。 – StackedCrooked 2010-04-15 16:02:10