【发布时间】:2017-08-08 10:02:39
【问题描述】:
我在 .NET Core 中基于用 Java 编写的服务器编写服务器。在 .net 核心中,我有:
JsonSerializer serializer = new JsonSerializer();
JsonWriter writer = new JsonTextWriter(OutputStream);
writer.WriteStartArray();
serializer.Serialize(writer, result); //result = [{ "Success": true}
writer.Flush(); //Java client received message and generate error: Incomplete document
在 java 中,服务器代码如下所示:
Json Writer writer = new JsonWriter(new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8")));
writer.beginArray();
Result result = new Result();
gson.toJson(result, Result.class, writer);
writer.flush(); //Java client still waiting
和产生错误的Java客户端:
jsonReader.beginArray();
result = gson.fromJson(jsonReader, Result.class);
在 Java 中,一切正常,但在 .net 核心中却不行。我已经通过 Wireshark 检查了数据包,并且所有内容都已发送。当我调试客户端时出现错误:"Incomplete document", java.io.IOException: Incomplete document"。有什么问题?
【问题讨论】:
-
不需要调用 writer.WriteEndArray() 吗?
-
@PalleDue 是的,在这两个代码中都是这一行,但在 writer.flush 之后。即使我以前写过这个,调试器也会出现同样的错误:java.io.IOException: Incomplete document.
标签: java c# android json .net-core