代码之家  ›  专栏  ›  技术社区  ›  Peter

在没有rails的Ruby中将POST参数转换为hash

  •  3
  • Peter  · 技术社区  · 14 年前

    将从浏览器接收到的HTTP POST字符串转换为Ruby散列的最佳库是什么?我不想使用基于rails的大型库。我在用 eventmachine evma_httpserver ,并希望包含将解码和转换params字符串的最轻库。

    注意:我不需要网络服务器。我手头有编码的post字符串,只需要将其转换为散列。

    3 回复  |  直到 14 年前
        1
  •  7
  •   Theo    14 年前
        2
  •  5
  •   Phrogz    14 年前

    你可以用 rack 它的宝石 Rack::Utils.parse_query 方法。

    如果你想比这更轻,你可以把源代码复制到 parse_query unescape 方法。

    如果您希望事件更轻(但可能没有性能或健壮),只需实现您自己的拆分并依靠 CGI.unescape .

        3
  •  1
  •   Maxim    11 年前

    试试这个:

    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]