gpt4 book ai didi

android - 更改状态代码 Rails

转载 作者:行者123 更新时间:2023-11-29 19:39:20 24 4
gpt4 key购买 nike

我处境非常糟糕。

我在带有 Ruby on Rails JSON API 的 Android 应用程序上使用 Volley。

问题是 Volley 存在一个错误,导致它无法正确识别状态为 401 的任何内容。基本上,只要有 401 状态,NetworkResponse 就是 null 并且 VolleyError 是 NoConnectionError 类型。

我已经搜索了很多,唯一的解决方法是返回 403 而不是 401,后者可以被 Volley 正确识别。

如果它们在 rails 中是 401,我如何更改对 403 的所有响应的状态代码?我无法控制所有操作并返回 403,例如在设计预制操作时。

有没有办法在 Rails 中完成响应或其他东西?

最佳答案

由于 devise 使用 warden,你可以创建一个自定义的 failureapp 并设置你想要的 http 状态。

在 lib/custom_failure.rb 中

class CustomFailure < Devise::FailureApp
def respond
self.status = 403
self.content_type = 'json'
self.response_body = { error: "Invalid Email or password."}.to_json
end
end

在 config/initializers/devise.rb 中

config.warden do |manager|
manager.failure_app = CustomFailure
end

在 config/application.rb 中

config.autoload_paths << Rails.root.join('lib')

关于android - 更改状态代码 Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38841114/

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