2011-07-08 93 views
2

我正在編寫模擬Ruby服務器來測試API的組件。我發送一個POST請求與一個正文,我希望我的模擬服務器返回該POST請求的主體。目前,我有這樣的代碼:在Ruby自制服務器中解析POST請求的主體

require 'socket' 

webserver = TCPServer.new('127.0.0.1', 7125) 
loop do 
    session = webserver.accept 
    session.print "HTTP/1.1 200/OK\r\nContent-type:text/html\r\n\r\n" 
    request = session.gets 
    session.puts request 
    session.close 
end 

與身體POST請求FOO返回與身體只包含POST/HTTP/1.1如何解決它的響應?

回答

0

編寫自己的HTTP服務器真的會讓你陷入麻煩,因爲規範雖然表面上很簡單,但有一些微妙的細微差別,可以讓你感覺不舒服。在這種情況下,您正在閱讀gets的一行,並忽略大部分提交。您必須通過閱讀並正確解碼發佈的數據來解決這個問題。

對於熟悉界面的東西,您可以改爲Net::HTTP::Server開頭。