【发布时间】:2020-06-07 17:08:08
【问题描述】:
我有一个 .Net Core 3.1 WebAPI:
- 使用以下方法序列化我的 obj:ProtoBuf.Serializer.Serialize(stream, 我的对象);
- 返回:Convert.ToBase64String(stream.GetBuffer(), 0, (int)stream.Length);
和调用 WebAPI 的 Blazor WASM 应用程序和
- 从线路获取数据:MemoryStream 流 = 新 MemoryStream(Convert.FromBase64String(等待 response.Content.ReadAsStringAsync()));
- 然后将其反序列化回我的 obj:myobj = ProtoBuf.Serializer.Deserialize(stream);
一切正常,但我怀疑这可以优化并避免一些转换为 byte[] / base4 字符串并返回。
这是通过网络传输 protobuf 数据的正确方法还是可以以更好的方式完成?
【问题讨论】:
-
有趣的问题。我真的不知道答案,但希望...
-
您可以通过 http 发送二进制数据 (byte[]) - 没有 base64 编码,我从来没有遇到过这样的问题。通过线路传输的字节数更少,并且没有字符串来回转换(base64)。
-
@FrankNielsen 你能分享一些 API 和客户端的代码吗?
标签: asp.net-web-api protobuf-net