Https 如何手动解析Rails 3.1服务器上的帖子?

Https 如何手动解析Rails 3.1服务器上的帖子?,https,ruby-on-rails-3.1,http-post,middleware,Https,Ruby On Rails 3.1,Http Post,Middleware,情景: 我在Rails服务器端有一个板模型,一个Android设备正试图通过post将一些内容发布到特定的板上。最后,服务器需要向Android设备发回响应 如何手动解析帖子(或者我需要这样做)?我不知道如何处理这种外部请求。我调查了金属、中间件、HttpParty;但它们似乎都不符合我所要做的。我想要手动解析它的原因是,我想要的一些信息将不是参数的一部分 有人知道解决这个问题的方法吗 我还在考虑以后使用SSL,这会对问题产生什么影响 提前谢谢!!:) 不确定“手动”的确切含义,帖子通常由控制器

情景: 我在Rails服务器端有一个板模型,一个Android设备正试图通过post将一些内容发布到特定的板上。最后,服务器需要向Android设备发回响应


如何手动解析帖子(或者我需要这样做)?我不知道如何处理这种外部请求。我调查了金属、中间件、HttpParty;但它们似乎都不符合我所要做的。我想要手动解析它的原因是,我想要的一些信息将不是参数的一部分

有人知道解决这个问题的方法吗

我还在考虑以后使用SSL,这会对问题产生什么影响


提前谢谢!!:)

不确定“手动”的确切含义,帖子通常由控制器中的“创建”或“更新”方法处理。检查您的板模型的控制器,您可以向适当的方法添加代码。您可以使用params散列访问params


你应该更具体地说明你想做什么。:)

我试图从ie9向我的rails应用程序发出跨域请求,我需要手动解析帖子的正文,因为ie9的XDR对象限制了我们可以发送到
text/plain
,而不是
application/x-www-urlcoded
(请参阅)。最初我只是使用控制器提供的
params
散列,但一旦我在ajax请求中限制了contentType和dataType,该散列就不再包含正确的信息

根据上面注释()中的URL,我学习了如何恢复该信息。作者提到,在rails控制器中,我们总是可以访问一个
request
变量,该变量为。我试图使用
request.query\u string
来获取请求正文,但这只是返回了一个空字符串。不过,API中的一些窥探发现了该方法。那个方法正好返回了我所需要的

要“手动解析”,您可以迭代
request.raw\u post
返回的字符串,然后做任何您想做的事情,但我不建议这样做。我使用Rack::Utils.parse_嵌套的_查询,正如Arthur Gunn在对的回答中所建议的那样,将原始的_帖子解析为散列。一旦它以散列形式出现,您就可以将任何其他需要的内容放入其中,然后将其与params散列合并。这样做意味着我不必在控制器中更改太多其他内容

params.merge!(Rack::Utils.parse_nested_query(request.raw_post))

希望这对别人有帮助

我想要手动解析它的原因是,我想要的一些信息将不会成为参数的一部分。我发现了一些有用的东西: