【发布时间】:2018-04-11 11:04:16
【问题描述】:
我正在尝试使用以下代码调用我的 .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 上那样抛出异常。
这是为什么呢?
【问题讨论】:
-
有什么理由使用已弃用的
WebClient而不是首选的HttpClient? -
习惯,我猜。不知道有一个首选的新的:)
-
HttpClient有一个IsSuccessStatusCode属性,对于任何非2XX状态返回false。EnsureSuccessStatusCode会根据IsSuccessStatusCode抛出异常 -
好吧,我来试一试。感谢您的提醒!
标签: c# asp.net-core