首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从ActionFilterAttribute返回自定义HTTP代码

从ActionFilterAttribute返回自定义HTTP代码
EN

Stack Overflow用户
提问于 2014-08-15 18:23:08
回答 1查看 3.3K关注 0票数 5

我使用下面的代码来限制我的ASP.NET Web:

代码语言:javascript
复制
public class Throttle : ActionFilterAttribute
{
    public override async Task OnActionExecutingAsync(HttpActionContext context, CancellationToken cancellationToken)
    {
            // ...
            if (throttle)
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Conflict));
            }
    }
}

但是,我不能返回错误代码429,因为它不在HttpStatusCode枚举中。有没有办法返回自定义错误代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-15 18:50:22

我在here上找到了这个。

代码语言:javascript
复制
var response = new HttpResponseMessage
  {
     StatusCode = (HttpStatusCode)429,
     ReasonPhrase = "Too Many Requests",
     Content = new StringContent(string.Format(CultureInfo.InvariantCulture, "Rate                       limit reached. Reset in {0} seconds.", data.ResetSeconds))
  };

    response.Headers.Add("Retry-After", data.ResetSeconds.ToString(CultureInfo.InvariantCulture));
    actionContext.Response = response;

希望这能有所帮助

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25324851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档