Blazor Server发送Post请求后无响应及自愈问题咨询
问题:Blazor Server调用WebAPI Post请求冻结,返回200但无后续动作(现已自行恢复)
我有一个Blazor Server应用和ASP.NET Core WebAPI项目,用GetAsync()能正常从API获取所有数据,但发送Post请求后应用会直接冻结,没有任何反应。查看命令窗口日志显示请求已返回200:
info: System.Net.Http.HttpClient.BedrijvenApiClient.ClientHandler[101] Received HTTP response headers after 1067.2083ms - 200 info: System.Net.Http.HttpClient.BedrijvenApiClient.LogicalHandler[101] End processing HTTP request after 1074.1642ms - 200
明明请求被接收且返回了成功状态,但应用就是没后续动作,也没抛出任何异常。用Postman测试这个API接口是正常能拿到结果的。
休息了一会儿后我没修改任何代码,再次尝试却正常运行了,完全搞不懂为什么之前不行现在又好了,非常困惑。
相关代码
Blazor端发送Post请求的代码:
public async Task<HttpResponseMessage> PostBedrijfAsync(string b) { var y = await _httpClient.PostAsJsonAsync<string>($"/bedrijven/{b}",""); return y; }
WebAPI控制器中的处理方法:
public async static Task<OBedrijf?> CreateBedrijf(string btw) { Bedrijven x = await Bedrijven.GetCreateByVat(btw); return x == null ? null : new OBedrijf(x.id, x.Naam, x.Co, x.BTW, x.Straat, x.Nummer, x.Bus, x.Zip, x.Stad, x.Taal, x.Opmerking, x.Email, x.Betalingsvoorwaarden, x.voordeeltarief); }
这个方法在Blazor里直接调用能正常返回新的OBedrijf对象,Postman调用也能返回JSON格式的OBedrijf数据。
WebAPI的路由配置(Program.cs):
RouteGroupBuilder bedrijvenApi = app.MapGroup("/bedrijven"); bedrijvenApi.MapPost("/{btw}", (string btw) => BedrijvenController.CreateBedrijf(btw));
想请教的问题:
- 我现在的Post请求写法是否正确?如果不对,正确的Post请求方式应该是怎样的?
- 是否遗漏了什么配置?需要在Program.cs里添加额外内容吗?
- 是不是缺少了相关的NuGet包?
- 为什么没修改代码,只是休息了一会儿再试就正常了?
内容的提问来源于stack exchange,提问作者ItsProbablySomethingStupid
相关产品推荐
相关产品推荐

