当客户错过接受报价的机会时,应使用什么 HTTP 响应代码

本文关键字:什么 代码 响应 HTTP 机会 错过 客户 | 更新日期: 2023-09-27 18:34:18

我正在用C#编写一个Web应用程序。一项功能是服务器将发送推送通知,为客户端提供执行一轮工作的机会。客户可以接受或拒绝这项工作。

但是,如果客户端响应时间太长,服务器会将其视为隐含拒绝,并将工作轮次提供给其他人。

下面是服务器上控制器终结点的摘录,客户端可以在其中发布它对当前轮次的接受

public HttpResponseMessage PostAcceptRound(PersonData accepter){
    Round currentRound = repo.GetCurrentRound();
    if(currentRound.offeredTo.id == accepter.id){
        repo.RoundAccepted(currentRound.id);
        return Request.CreateResponse<String>(HttpStatusCode.OK, "Round has been accepted");
    }
    else{
        //return appropriate response
    }
}

我的问题是:对于需要很长时间才能接受的客户来说,适当的回应是什么?

的第一反应是我应该发送一个"BadRequest"错误响应。但是,并不是说一个人迟到拒绝是格式不佳的请求或出乎意料的事情。事实上,似乎接受太晚将是使用此应用程序时经常发生的情况。

当客户错过接受报价的机会时,应使用什么 HTTP 响应代码

> 408 = '请求超时' 在我看来是最合适的。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html