【发布时间】:2019-02-20 12:59:24
【问题描述】:
在我作为 CGI 程序运行的 ruby 脚本中,我需要访问 HTTP POST 请求的主体。请求正文包含 JSON 数据:
{"data":"a"}
我想取整个身体并用 JSON.parse 解析它来处理它。这样做的规范方法是什么? Ruby docs 没有提及请求正文。
我只在blog post 中发现了一个提示
CGI 尝试将请求正文解析为表单参数,因此一团 JSON 尴尬地最终成为唯一的参数键。
这种方法似乎有效
puts cgi.params.keys.first # prints {"data":"a"}
但一旦 data 的值是包含用于填充的 = 的 base64 编码字符串就会失败:使用此正文
{"data":"a="}
导致以下输出(末尾缺少字符):
puts cgi.params.keys.first # prints {"data":"a
解决这个问题的正确方法是什么?
【问题讨论】: