这里的团队正在构建一个移动(iOS,Android)应用程序,不久将发布到各自的商店。我想介绍一种阻止特定版本的应用程序登录的能力(将来的某个时间)。事实上,第一个服务器调用应该返回一个特定的HTTP代码来告诉客户端应用程序请求失败(例如登录),但原因是他们需要从商店下载更新的应用程序。请求标头将包含所有应用程序特定信息,以便服务器知道它是否被接受。
它应该返回401 Unauthorized
还是403 Forbidden
并且在正文中有一个指明失败原因的特定信息,或者是否可以使用特定的http代码?我们希望显示特定消息而不是通用消息,因此需要正确映射到返回的数据。
答案 0 :(得分:0)
IMO既不是401也不适合403,您的应用程序确实有权访问并且有权访问您的服务器,您可以成功与之通信。如果它没有被授权或者无法访问服务器,那么服务器如何确定应用程序版本需要升级?
我会返回一个常规的http成功来表明您与您的服务器进行DID通信,然后您的服务器继续确定您应用的版本并做出响应。
您可以在http正文中添加一条消息,但可以更容易地将自定义字段添加到http响应标头,然后就不需要它包含正文。在应用程序中获取http标头字段非常简单。
当您的应用程序解析了http响应标题时,您正在讨论的消息应该来自您的应用程序 - 您的问题似乎暗示您认为或期望操作系统可以或应该基于显示此消息http状态代码。不应该,应该是你的应用程序这样做。