在没有rails的情况下将POST参数转换为Ruby中的哈希

时间:2010-11-28 03:00:15

标签: ruby http

用于将从浏览器接收的HTTP POST字符串转换为Ruby哈希的最佳库是什么?我不想使用基于rails的大型库。我正在使用eventmachineevma_httpserver,并希望包含可能解码和转换参数字符串的最轻的库。

注意:我不需要网络服务器。我手头有编码的帖子字符串,只需将其转换为哈希值。

3 个答案:

答案 0 :(得分:7)

来自Ruby标准库的

URI.decode_www_form可以执行此操作:http://rubydoc.info/docs/ruby-stdlib/1.9.2/URI#decode_www_form-class_method

答案 1 :(得分:5)

您可以将rack gem用于其Rack::Utils.parse_query方法。

如果您想要更轻,可以将源代码复制到parse_queryunescape方法。

如果您希望事件更轻(但可能不那么高效或健壮),只需实施自己的拆分并依靠CGI.unescape

答案 2 :(得分:1)

试试这个:

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]