В соответствии с HttpResponseMessage documentation на MSDN причина фразы (как и в разделе «ОК» 200 OK) должна быть установлена. Ответ HTTP действительно позволяет мне установить причину фразу:MVC4 Фактор разума WebAPI?
HttpResponseMessage response = new HttpResponseMessage(System.Net.HttpStatusCode.Conflict);
response.ReasonPhrase = "conflict message";
Однако, когда я потребляю ответ на стороне клиента, как WebResponse, я не вижу мою заказ причины фразы. Я ожидаю найти его под StatusDescription. Глядя на исходный ответ, используя Fiddler, похоже, что причина фразы не установлена на сервере.
Полезным Коллега отметил, что с результатами действий (и производные), я мог бы сделать что-то похожее на:
new HttpStatusCodeResult(System.Net.HttpStatusCode.Conflict, "conflict message");
Кажется, что это точная функциональность я после, но я Не знаю, как убедить WebAPI сотрудничать.
Куда я иду не так?
Это была известная ошибка с веб-API WCF. Я думал, что он был исправлен в ASP.Net Web API. Что вы используете? –
Я использую ASP.NET WebAPI. – Ross
@Ross Вы решили это сейчас? Если да, можете ли вы просмотреть ответы и отметить правильный. – Junto