Есть ли простой способ изменить сообщение 404 по умолчанию, возвращаемое веб-API?Настройка «Не найден ресурс http, который соответствует запросу uri»
Нет HTTP ресурсов было установлено, что соответствует URI Запроса
Есть ли простой способ изменить сообщение 404 по умолчанию, возвращаемое веб-API?Настройка «Не найден ресурс http, который соответствует запросу uri»
Нет HTTP ресурсов было установлено, что соответствует URI Запроса
Вы должны переопределить DelegatingHandler абстрактный класс.
увидеть здесь Uniform, consistent error responses from ASP.Net Web API 2
и здесь, ASP.NET Web API Exception Handling
Простой способ сделать это с помощью "DelegatingHandler"
Первый шаг заключается в создании нового класса наследует от DelegatingHandler:
public class ApiGatewayHandler : 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)
{
var msg = await response.Content.ReadAsStringAsync();
//you can change the response here
if (msg != null && msg.Contains("No HTTP resource was found"))
{
return new HttpResponseMessage
{
StatusCode = HttpStatusCode.NotFound,
Content = new ObjectContent(typeof(object), new { Message = "New Message..No HTTP resource was found that matches the request URI" }, new JsonMediaTypeFormatter())
};
}
}
return response;
return response;
}
}
зарегистрируйте этот класс в Web API Регистрация конфигурационного файла
public static void Register(HttpConfiguration config){
public static void Register(HttpConfiguration config)
{
// you config and routes here
config.MessageHandlers.Add(new ApiGatewayHandler());
//....
}
}
То есть это. То же самое, если вам нужно изменить любое другое сообщение об ошибке.
Вместо использования промежуточного программного обеспечения OWIN, поскольку обновление в ссылке # 2 предлагает? – user2966445
, вы можете перейти к промежуточному программному обеспечению OWIN. Мое предложение - попробовать оба и посмотреть, какой из них лучше для вас –