我正在使用WebApi进行服务。它有一个带GET方法的控制器。当我从客户端调用它并返回Unauthorized状态代码时,我不会在HttpResponseMessage中获得Unauthorized,而是在NotFound中获取。
[RoutePrefix("api/dummies")]
public class DummiesController : ApiController
{
[Route("test")]
[HttpGet]
public IHttpActionResult GetTest()
{
return StatusCode(HttpStatusCode.Unauthorized);
}
}
这是我从客户端调用它的方式:
public class Persistance
{
private HttpClient _client;
public Persistance()
{
_client = new HttpClient();
_client.BaseAddress = new Uri("http://localhost:10767/");
}
public async Task DummyMethod()
{
HttpResponseMessage response = await _client.GetAsync("api/dummies/test");
if (response.StatusCode == HttpStatusCode.Unauthorized)
{
// etc..
}
}
}
response
的内容:
StatusCode NotFound System.Net.HttpStatusCode
我在GetTest()处放置了一个断点,它在那里停止,因此它到达了控制器方法。
为什么我在客户端获取NotFound而不是Unauthorized?
答案 0 :(得分:-1)
控制器路由属性[Route("api/[controller]")]
在那里?
或
删除行动路线,您可以尝试这个
[HttpGet("test")]