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

时间:2014-12-15 10:52:32

标签: c# http asp.net-web-api client-server

我正在用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
    }
}

我的问题是:客户花费太长时间接受的适当回应是什么?

我最初的反应是我应该发送一个&#34; BadRequest&#34;错误回应。然而,并不是一个拒绝迟到的人是一个糟糕的请求或一些意外的事情。实际上,似乎接受太晚将会出现在使用此应用程序时经常发生的情况。

1 个答案:

答案 0 :(得分:1)

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