我无法覆盖404 http错误,但它适用于其他任何http代码,例如400:
如果我删除该行并保留404 http代码
response = request.CreateResponse(HttpStatusCode.BadRequest);
我收到以下标准消息:
不是我的自定义错误消息,例如400
我的消息处理程序:
public class CustomMessageHandler : DelegatingHandler
{
protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var response = await base.SendAsync(request, cancellationToken);
if (response != null && response.StatusCode == HttpStatusCode.NotFound)
{
response = request.CreateResponse(HttpStatusCode.BadRequest);
response.Content =
new ObjectContent(
typeof(Error),
new Error { error = "bad_request", description = "Your request is not valid", url = request.RequestUri.AbsolutePath },
new JsonMediaTypeFormatter());
}
return await Task.FromResult<HttpResponseMessage>(response);
}
}
我的错误类别:
public class Error
{
public string error { get; set; }
public string description { get; set; }
public string url { get; set; }
}