我正在使用ASP.NET Web API创建REST服务。 如何从GET方法的操作中返回401状态代码...
我从例如返回某些状态代码时没有问题POST方法,因为我可以将返回类型设置为HttpResponseMessage
public HttpResponseMessage Post(Car car)
{
using (var context = new CarEntities())
{
...
var response = new HttpResponseMessage(HttpStatusCode.Created);
response.Headers.Location = new Uri(Request.RequestUri, path);
return response;
}
}
但是,当方法返回的类型不同于HttpResponseMessage时,如何返回GET方法的状态代码:
public Car Get(int id)
{
var context = new CarEntities();
return context.Cars.Where(p => p.id == id).FirstOrDefault();
}
我想回复,例如401此Get方法中的授权失败时
由于
答案 0 :(得分:5)
您应该抛出一个HttpResponseException
,它允许您指定响应代码,例如:
if (authFailed) {
throw new HttpResponseException(HttpStatusCode.Unauthorized);
}