如何从带有rails的API获取POST请求

时间:2017-02-01 10:52:50

标签: ruby-on-rails api post webhooks

我从API收到了POST请求。我检查了内容类型,它是x-www-form-urlencoded,但是body请求也包含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}"}

1 个答案:

答案 0 :(得分:1)

如果要保持以这种方式编码的表单,则将在params集合中包含参数。这意味着您可以解析JSON执行的操作:

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

'json'是你在有效载荷中收到的json的关键。

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