我正在编写模拟 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
的响应如何修复?
最佳答案
编写您自己的 HTTP 服务器确实会给您带来麻烦,因为该规范虽然表面上很简单,但有许多细微差别可能会误导您。在这种情况下,您正在读取带有 gets
的一行并忽略提交的大部分内容。您将不得不通过读取并正确解码发布的数据来解决这个问题。
对于具有熟悉界面的内容,您可以从 Net::HTTP::Server 开始相反。
关于ruby - Ruby自制服务器解析POST请求体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6626224/