WebClient UploadData不会抛出403

时间:2018-04-11 11:04:16

标签: c# asp.net-core

我正在尝试使用以下代码调用我的.NET Core API:

using (var webClient = new WebClient())
{
    try
    {
        webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json");

        string json = JsonConvert.SerializeObject(updateLiveMapRequest);
        byte[] data = Encoding.UTF8.GetBytes(json);
        await webClient.UploadDataTaskAsync("http://localhost:1778/api/upload/data", data);
    }
    catch (WebException ex)
    {
        Logger.Debug(ex);
        throw;
    }
}

在我的服务器上,出于测试目的,只需返回Forbid()

return Forbid();

呼叫到达控制器,但是消费的Web客户端非常满意于获得403作为结果并且不像BadRequest那样抛出异常。

为什么?

1 个答案:

答案 0 :(得分:0)

我只是想通过this回答:

  

当您想要使用来自API的HTTP 403状态代码进行响应时   不希望ASP.NET Core身份验证逻辑执行任何操作   重定向或其他操作,请使用:

这样可以解决问题:

return StatusCode((int)HttpStatusCode.Forbidden);