根据MSDN上的HttpResponseMessage
documentation,原因短语(如200 OK的“OK”部分)应该是可设置的. HTTP响应让我设置原因短语:
HttpResponseMessage response = new HttpResponseMessage(System.Net.HttpStatusCode.Conflict); response.ReasonPhrase = "conflict message";
但是,当我在客户端使用响应作为WebResponse时,我没有看到我的自定义原因短语.我希望在StatusDescription下找到它.使用Fiddler查看原始响应,似乎没有在服务器上设置原因短语.
一位乐于助人的同事指出,通过行动结果(和派生),我可以做类似于:
新的HttpStatusCodeResult(System.Net.HttpStatusCode.Conflict,“冲突消息”);
似乎这就是我所追求的精确功能,但我不确定如何说服WebAPI合作.
我哪里错了?
解决方法
ReasonPhrase在Cassini中不起作用.使用IIS Express而不是Cassini,您会发现响应包含原因.