如何使用 rails 从 API 获取 POST 请求

How to get POST request from API with rails

我收到了 API 的 POST 请求。我检查了内容类型,它是 x-www-form-urlencoded,但正文请求也包含 JSON。如何从散列中的 JSON 解析?

控制台请求参数:Screenshot || Parameters: {"vpbx_api_key"=>"etxojfklr6nue6tl627pn5sdi0koov7t", "sign"=>"ad0c49034c8d83a7d7f1b433afc2ed5a9aa08d933dba3724062aed0c3d1a79bb", "json"=>"{\"entry_id\":\"MjYyNjQ2NzM1Njo0Mg==\",\"call_id\":\"MToxMDAxNDAzOTo0Mjo4Mjc2NzEzMzk=\",\"timestamp\":1485939839,\"seq\":2,\"call_state\":\"Disconnected\",\"location\":\"abonent\",\"from\":{\"number\":\"79268220697\",\"taken_from_call_id\":\"MToxMDAxNDAzOTo0Mjo4Mjc2NzEwOTA6MQ==\"},\"to\":{\"extension\":\"2\",\"number\":\"79154612023\",\"line_number\":\"74953749768\"},\"disconnect_reason\":1100}"}

如果您想保持表单以这种方式编码,您将在 params 集合中拥有这些参数。这意味着您可以将 JSON 解析为:

def my_method_to_process_the_post
    parsed = JSON.parse params[:json]
end

'json' 是您在有效载荷中收到的 json 的密钥。

对于 JSON 解析的历史演变,您可能需要检查 this 线程。