.net framework 4.7.2 破坏了 httpclient
.net framework 4.7.2 broke httpclient
我的 ASP.NET MVC 项目使用 HttpClient.PostAsync() 到 post 到 webAPI 端点。一切都很好,直到我最近将项目升级到目标 .NET Framework 4.7.2。现在调用将以 HTTP 状态 405(方法不允许)结束。但是,具有 [HTTPGet] 的端点可以工作。在绝望的措施中,我将 API 控制器设置为 [EnableCors(origins: "", headers: "", methods: "*")] 并调用端点相同的域和端口(本地主机到本地主机)。我什至将项目恢复到 4.6.1。它仍然抛出 405 错误。你能帮忙吗?谢谢你。
public static async Task < T > Post < T > (string baseUrl, string urlSegment, HttpContent postContent) {
string responseContent = string.Empty;
Uri returnUrl = null;
using(HttpClient client = GetClient(baseUrl)) {
HttpResponseMessage response = await client.PostAsync(urlSegment.TrimStart('/'), postContent).ConfigureAwait(false);
if (response.IsSuccessStatusCode) {
returnUrl = response.Headers.Location;
}
return JsonConvert.DeserializeObject < T > (returnUrl.ToString());
}
}
原来是WebAPI端点路径被更改了。此外,我在升级到 DotNet Framework 4.7.2 之前恢复了 GIT 提交以回滚到某个版本,然后 cherry-picked 升级到 4.7.2 之后的所有提交。
我的 ASP.NET MVC 项目使用 HttpClient.PostAsync() 到 post 到 webAPI 端点。一切都很好,直到我最近将项目升级到目标 .NET Framework 4.7.2。现在调用将以 HTTP 状态 405(方法不允许)结束。但是,具有 [HTTPGet] 的端点可以工作。在绝望的措施中,我将 API 控制器设置为 [EnableCors(origins: "", headers: "", methods: "*")] 并调用端点相同的域和端口(本地主机到本地主机)。我什至将项目恢复到 4.6.1。它仍然抛出 405 错误。你能帮忙吗?谢谢你。
public static async Task < T > Post < T > (string baseUrl, string urlSegment, HttpContent postContent) {
string responseContent = string.Empty;
Uri returnUrl = null;
using(HttpClient client = GetClient(baseUrl)) {
HttpResponseMessage response = await client.PostAsync(urlSegment.TrimStart('/'), postContent).ConfigureAwait(false);
if (response.IsSuccessStatusCode) {
returnUrl = response.Headers.Location;
}
return JsonConvert.DeserializeObject < T > (returnUrl.ToString());
}
}
原来是WebAPI端点路径被更改了。此外,我在升级到 DotNet Framework 4.7.2 之前恢复了 GIT 提交以回滚到某个版本,然后 cherry-picked 升级到 4.7.2 之后的所有提交。