我想从我的应用程序返回相应的HTTP代码和反应,但我在努力。 看来,有2种方式返回特定的HTTP响应。
我想对付它的方法是抛出一个HttpResponseException
:
public Information Get(int apiKey)
{
if (!_users.Authenticate(apiKey))
{
var response = new HttpResponseMessage();
response.StatusCode = (HttpStatusCode)401;
response.ReasonPhrase = "ApiKey invalid";
throw new HttpResponseException(response);
}
return _info.Get();
}
但是,我这样做,当我看到的响应只是一个空200响应!
它还看来你也可以改变你的操作方法的签名,以返回HttpResponseMessage
是这样的:
public HttpResponseMessage Get()
{
if (!_users.Authenticate(apiKey))
{
return Request.CreateResponse((HttpStatusCode) 401, "ApiKey invalid");
}
return Request.CreateResponse((HttpStatusCode) 200, _info.Get());
}
我真的不想这样做,如果我能帮助它,我宁愿有我的返回类型,因为我试图检索,而不是每一次它包裹在一个对象HttpResponseMessage
。
是否有一个原因,第一种方法返回一个空的200,而不是401,我希望它的消息?