Конвертировать параметры POST в хэш в Ruby без направляющих - PullRequest
3 голосов
/ 28 ноября 2010

Какую библиотеку лучше всего использовать для преобразования строки HTTP POST, полученной из браузера, в хэш Ruby?Я не хочу использовать большие рельсовые библиотеки.Я использую eventmachine и evma_httpserver и хочу включить самую легкую библиотеку, которая будет декодировать и преобразовывать строку параметров.

Примечание: мне не нужен веб-сервер.У меня есть зашифрованная строка сообщения, и мне просто нужно преобразовать ее в хеш.

Ответы [ 3 ]

7 голосов
/ 28 ноября 2010

URI.decode_www_form из стандартной библиотеки Ruby может сделать это: http://rubydoc.info/docs/ruby-stdlib/1.9.2/URI#decode_www_form-class_method

5 голосов
/ 28 ноября 2010

Вы можете использовать гем rack для его Rack::Utils.parse_query метода.

Если вы хотите легче, вы можете просто скопировать исходный кодк методам parse_query и unescape от него.

Если вы хотите, чтобы событие было легче (но, возможно, не таким быстрым и надежным), чем это, просто реализуйтесвой собственный раскол и опираться на CGI.unescape.

1 голос
/ 12 октября 2013

Попробуйте это:

require "uri"    
result = URI.decode_www_form("your=post&params=values").inject({}) {|r, (key,value)| r[key.to_sym] = value;r}

puts result[:your]
puts result[:params]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...