Ruby 阅读400响应的正文?
我试图用Ruby 阅读400响应的正文?,ruby,rest-client,Ruby,Rest Client,我试图用rest客户机gem阅读400响应的主体。问题是,restclient通过将其作为错误抛出来响应400,因此我无法找到任何获取正文文本的方法 下面是一个激励性的例子。考虑调用脸谱网图形API: JSON.parse(RestClient.get("https://graph.facebook.com/me?fields=id,email,first_name,last_name&access_token=#{access_token}")) 如果访问令牌已过期或无效,faceb
rest客户机
gem阅读400响应的主体。问题是,restclient
通过将其作为错误抛出来响应400,因此我无法找到任何获取正文文本的方法
下面是一个激励性的例子。考虑调用脸谱网图形API:
JSON.parse(RestClient.get("https://graph.facebook.com/me?fields=id,email,first_name,last_name&access_token=#{access_token}"))
如果访问令牌已过期或无效,facebook会做两件事:
begin
fb_response = JSON.parse(RestClient.get("https://graph.facebook.com/me?fields=id,email,first_name,last_name&access_token=#{access_token}"))
rescue => e
# 400 response puts me here
# How can I get the body of the above response now, so I can get details on the error?
# eg, was it an expired token? A malformed token? Something else?
end
发件人:
例外情况
对于其他情况,将引发包含响应的RestClient::异常;将为已知错误代码引发特定的异常类
您可以像这样重写代码:
body = begin
RestClient.get("https://graph.facebook.com/me?fields=id,email,first_name,last_name&access_token=#{access_token}")
rescue => e
e.response.body
end
fb_response = JSON.parse(body)
或者只使用从异常获取响应主体。(这只是一条捷径)
begin
RestClient.get 'http://example.com/resource'
rescue => e
e.response
end
body = begin
RestClient.get("https://graph.facebook.com/me?fields=id,email,first_name,last_name&access_token=#{access_token}")
rescue => e
e.response.body
end
fb_response = JSON.parse(body)