私は自分のサービスにWebApiを使用しています。それはGETメソッドを持つコントローラを持っています。私がクライアントからそれを呼び出してUnauthorizedステータスコードを返すと、私はHttpResponseMessageではUnauthorizedを取得せず、代わりにNotFoundを取得します。HttpResponseMessageで間違ったステータスコードを受け取る
[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()にブレークポイントを置くと、それはそこに停止し、コントローラメソッドに到達します。
クライアントでUnauthorizedではなくNotFoundを取得するのはなぜですか?
を試すことができます。 GetAsync( "http:// localhost ....") –
私はコンストラクタにUriを設定しました。コンストラクタのコードを追加しました。 – kwarr
コントローラが正常に見えます。私はテストwebapiアプリケーションを作成し、ブラウザでapi/dummies/test(応答だった)を呼び出すことができます。 –