我为我的应用程序创建了一个小型HttpServer。它用于提供某种API和一些json repsponses。到目前为止我测试的所有响应都很好,除了一个。我使用GSON作为json部分。我处理响应创建的部分代码如下:
JsonObject jsonResult = new JsonObject();
JsonArray jsonResultItem = new JsonArray();
for (Entry<Integer, TestcaseStatusReport> item : testcaseStatuses.entrySet()){
JsonObject tempJson = new JsonObject();
tempJson.addProperty("id", item.getKey());
tempJson.addProperty("status", item.getValue().getStatus().toString());
jsonResultItem.add(tempJson);
}
jsonResult.add("result", jsonResultItem);
return jsonResult;
然后使用此jsonResult
创建响应private static FullHttpResponse createResponse(JsonObject jsonResponse) {
ByteBuf buffer = Unpooled.copiedBuffer(jsonResponse.toString(),
CharsetUtil.UTF_8);
FullHttpResponse response = new DefaultFullHttpResponse(
HttpVersion.HTTP_1_1,
HttpResponseStatus.OK,
buffer);
HttpHeaders.setContentLength(response, buffer.readableBytes());
response.headers().set(HttpHeaders.Names.CONTENT_TYPE,
"application/json");
return response;
}
我从上面传递jsonResult对象作为参数。在调试模式下,我看到创建的json是以下
{"result":[{"id":2,"status":"Starting"}]}
并且回复内容长度为41,同意。但它仍然挂起。我为其他api调用使用相同的函数(createResponse)并传递其他jsonResponse参数并且工作正常。我做错了吗?