Разбор тела запроса POST на самодельном сервере в Ruby - PullRequest
2 голосов
/ 08 июля 2011

Я пишу фиктивные серверы 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

POST-запрос с телом FOO возвращает ответ с телом, содержащим только POST / HTTP/1.1 Как это исправить?

1 Ответ

0 голосов
/ 08 июля 2011

Создание собственного HTTP-сервера действительно доставит вам неприятности, потому что спецификация, хотя и внешне проста, имеет ряд тонких нюансов, которые могут вас запутать. В этом случае вы читаете одну строку с gets и игнорируете большую часть представления. Вам придется решить эту проблему, прочитав и правильно расшифровав опубликованные данные.

Для чего-то со знакомым интерфейсом вы можете начать с Net :: HTTP :: Server .

...