编写一个触及api(ETSY)的应用程序并带回一些JSON但有时我收到403错误,如果我收到错误,我想显示一个错误页面,但我不知道如何检查该错误并执行其他操作。
my_hash = JSON.parse(open("https://openapi.etsy.com/v2/listings/#{$productId}?api_key=XXXX&fields=title,url,price,description&includes=MainImage").read)
我已经看了一会儿,但却没有看到我正在寻找的东西。
答案 0 :(得分:0)
每当遇到403错误时,您都可以使用开始救援块重定向用户
def index
begin
my_hash = JSON.parse(open("https://openapi.etsy.com/v2/listings/#{$productId}api_key=XXXX&fields=title,url,price,description&includes=MainImage").read)
rescue
redirect_to error_path
end
这有点快速和肮脏,但我认为它可以完成工作。 这篇文章也可能有所帮助。 http://www.mattjohnston.co/blog/2013/10/18/responding-with-errors-in-rails/
答案 1 :(得分:0)
我认为您需要检查您的api响应,如果响应是404然后呈现错误页面。可能是这样的。要从api获得响应,您需要使用第三方(restclient或httpparty)。
def index
response = RestClient get "https://openapi.etsy.com/v2/listings/#{$productId}api_key=XXXX&fields=title,url,price,description&includes=MainImage"
unless response.code == 404
result_hash = JSON.parse(response.body)
// do something
else
// redirect to error page here
end
end
供参考,请阅读restclient文档here。