我正在使用Rails gem使用RestClient向api发送请求我需要挽救401错误代码我在restclient文档中看到了以下内容:
> RestClient.get('http://my-rest-service.com/resource'){ |response,
> request, result, &block| case response.code when 200
> p "It worked !"
> response when 423
> raise SomeCustomExceptionIfYouWant else
> response.return!(request, result, &block) end }
我试图实现类似的case语句:
case response.code
when 200
JSON.parse(response.body)
when 401
raise AuthenicationError, "Unauthorized"
else
raise RestClient::ExceptionWithResponse
end
它捕获200箱罚款,但忽略401箱,并直接转到其他有什么建议可以对通过restclient返回的响应提出401的异常吗?
最佳答案
我不能告诉你,为什么我相信其余的客户回购可以告诉你:)但是使用RestClient::Request.new
然后用一个块执行api调用对我有效。
我认为这可能与RestClient内置了异常这一事实有关。
request = RestClient::Request.new(
method: :get,
url: 'https://my-rest-service.com/resource.json')
response = request.execute {|response| response}
case response.code
when 200
puts "Good"
when 401
puts "Bad"
raise Exception
end
关于ruby-on-rails - 需要使用RestClient抢救401状态代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40410228/