简化代码示例: http: //pastebin.com/9ZQxSXi9
你好
我想尝试使用 restlet 2.0 库和 gpodder 网络服务,但不知何故,我到了一个看不到树木只见树木的地步。示例中的服务需要 HTTP 身份验证并将一些 JSON 内容发布到 URL。没有什么复杂的,但不知何故,即使调试视图声称请求对象包含必要的内容,RESTful web 服务的响应让我相信请求的 HTTP 标头缺少内容。
关于原因的任何想法?提前致谢。
简化代码示例: http: //pastebin.com/9ZQxSXi9
你好
我想尝试使用 restlet 2.0 库和 gpodder 网络服务,但不知何故,我到了一个看不到树木只见树木的地步。示例中的服务需要 HTTP 身份验证并将一些 JSON 内容发布到 URL。没有什么复杂的,但不知何故,即使调试视图声称请求对象包含必要的内容,RESTful web 服务的响应让我相信请求的 HTTP 标头缺少内容。
关于原因的任何想法?提前致谢。
问题是我见过的 WriterRepresentation 的实现(JsonRepresentation、JacksonRepresentation、XStreamRepresentation)都没有在传递对象时设置表示的大小。因此,如果您创建一个新的 JacksonRepresentation(map),则不会计算大小。
您必须手动计算地图内容的长度并调用 Representation.setSize()。或者,像我一样,使用
new JsonRepresentation(" 一个 json 字符串...");
这个构造函数能够计算大小,当然,也就是字符串长度,所以设置了正确的 content-length 标头,一切顺利。