gpt4 book ai didi

ruby-on-rails - 需要使用 RestClient 挽救 401 状态码

转载 作者:太空宇宙 更新时间:2023-11-03 17:21:11 27 4
gpt4 key购买 nike

我正在使用 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 response.code
when 200
JSON.parse(response.body)
when 401
raise AuthenicationError, "Unauthorized"
else
raise RestClient::ExceptionWithResponse
end

它很好地捕获了 200 的情况,但忽略了 401 的情况并直接转到其他情况。关于对通过 RestClient 返回的响应引发 401 异常的任何建议?

最佳答案

我不能告诉你以及为什么我确定 rest-client 存储库可以告诉你 :) ... 但是使用 RestClient::Request.new 然后执行 api 调用 block 对我有用。我认为这可能与 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com