在Ruby中的自制服务器中解析POST请求的主体

时间:2011-07-08 14:51:03

标签: ruby sockets post request webserver

我正在编写模拟Ruby服务器来测试API的组件。我发送一个带有正文的POST请求,我希望我的模拟服务器返回该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

主体FOO的POST请求会返回一个只包含POST / HTTP/1.1的正文的响应如何解决?

1 个答案:

答案 0 :(得分:0)

编写自己的HTTP服务器确实会让你遇到麻烦,因为规范虽然表面上很简单,但却有许多微妙的细微差别可能会让你感到沮丧。在这种情况下,您正在使用gets读取一行并忽略大部分提交。您将不得不通过读入并正确解码发布的数据来解决这个问题。

对于熟悉界面的内容,您可以从Net::HTTP::Server开始。

相关问题