我有两个rails应用程序。 App#1将控制器操作的发布请求发送到App#2中的另一个控制器操作。我希望能够在App#1中读取对该POST的响应。
App#1 Controller:
require 'net/http'
# get the url that we need to post to
url = URI.parse('http://app2.com/sessions/login_request')
# build the params string
post_args1 = {
'username' => 'my@test.com'
}
# send the request
resp, data = Net::HTTP.post_form(url, post_args1)
#HOW do I read :token and :tokenMnemonic here??
App#2控制器:
def login_request
# do some logic here
render :json => {
:result => "OK",
:token => random_token,
:tokenMnemonic => tokenMnemonic
}
end
问题是如何从App#1的控制器收到的POST响应中读取:token和:tokenMnemonic。
答案 0 :(得分:2)
变量resp
表示响应对象。您可以使用#body
方法将响应正文作为String。
如果正文是JSON的字符串序列化,只需将其解析回来获取元素。
hash = JSON.parse(resp.body)
hash['token']
# => ...