我使用下面的代码来限制我的ASP.NET Web:
public class Throttle : ActionFilterAttribute
{
public override async Task OnActionExecutingAsync(HttpActionContext context, CancellationToken cancellationToken)
{
// ...
if (throttle)
{
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Conflict));
}
}
}
但是,我不能返回错误代码429,因为它不在HttpStatusCode枚举中。有没有办法返回自定义错误代码?
发布于 2014-08-15 18:50:22
我在here上找到了这个。
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;
希望这能有所帮助
https://stackoverflow.com/questions/25324851
复制相似问题