【发布时间】:2020-06-22 16:00:31
【问题描述】:
我只是想通过在 Blazor 应用程序中使用 Http POST 方法
public async Task CreateUnit(UnitEntity unit)
{
await _http.PostJsonAsync<UnitEntity>("api/units", unit);
}
_http 和 myObject 已在其他地方定义,但我遇到了这个奇怪的错误。任何人都可以帮忙吗?这是我在其他地方能找到的最接近的东西:https://github.com/dotnet/runtime/issues/30945。
完整的错误信息是
System.Text.Json.JsonException:输入不包含任何 JSON 标记。当 isFinalBlock 为真时,预期输入以有效的 JSON 令牌开头。路径:$ |行号:0 | BytePositionInLine: 0。
这是堆栈
【问题讨论】:
-
发布 MyObject 初始化代码和类型。你不应该使用
<MyType>,它应该使用:_http.PostJsonAsync("api/myRoute", myObject); -
我在这里的顶部代码块中编辑了整个方法。我知道我使用的 UnitEntity 是有效的,因为它与我在 DAL 中用于测试而无需通过服务的 UnitEntity 相同。我认为这可能与异步或序列化有关,但这只是猜测
-
奇怪的是,调试 UI 和服务都没有发现异常。它只显示在浏览器控制台中
-
您的服务是否返回 Json 对象?问题可能出在响应上
标签: json blazor json-deserialization json-serialization