我正在使用RestClient发出一个帖子请求,所以我做了一个错误回复,所以我可以在控制台中打印这些错误消息
我根据restclient gem文档尝试了以下内容
begin
response = RestClient.post base_uri, params.to_json, content_type: 'application/json', accept: 'application/json'
rescue RestClient::ExceptionWithResponse => err
error = err.response
p "this is the error response #{error}"
end
当我打印err.response时,我得到以下
"this is the error response {\"error\":{\"message\":\"An active access token must be used to query information about the current us
er.\",\"type\":\"OAuthException\",\"code\":2500,\"fbtrace_id\":\"HTzmJ0CcIfd\"}}"
如何访问上述哈希中的消息以在控制台中显示它?
尝试
p "this is the error response #{error.message}"
它给了我"Bad request"
- 不知道它在哪里
答案 0 :(得分:2)
如果你只想输出它:
error = JSON.load(err.response)
puts error['error']['message']
您可以随时格式化它:
puts '[Code %d %s] %s' % [
error['error']['code'],
error['error']['type'],
error['error']['message']
]
请注意,在Rails进程中使用puts
并不会很好。您可能希望改为使用Rails.logger.debug
。
答案 1 :(得分:1)
您收到的回复是JSON。您需要首先解码JSON然后与数据交互。就个人而言,我喜欢MultiJson:
begin
response = RestClient.post base_uri, params.to_json, content_type: 'application/json', accept: 'application/json'
rescue RestClient::ExceptionWithResponse => err
error = MultiJson.load(err.response)
p "this is the error response #{error[:message]}"
end