1

简化代码示例: http: //pastebin.com/9ZQxSXi9

你好

我想尝试使用 restlet 2.0 库和 gpodder 网络服务,但不知何故,我到了一个看不到树木只见树木的地步。示例中的服务需要 HTTP 身份验证并将一些 JSON 内容发布到 URL。没有什么复杂的,但不知何故,即使调试视图声称请求对象包含必要的内容,RESTful web 服务的响应让我相信请求的 HTTP 标头缺少内容。

关于原因的任何想法?提前致谢。

4

1 回答 1

1

问题是我见过的 WriterRepresentation 的实现(JsonRepresentation、JacksonRepresentation、XStreamRepresentation)都没有在传递对象时设置表示的大小。因此,如果您创建一个新的 JacksonRepresentation(map),则不会计算大小。

您必须手动计算地图内容的长度并调用 Representation.setSize()。或者,像我一样,使用

new JsonRepresentation(" 一个 json 字符串...");

这个构造函数能够计算大小,当然,也就是字符串长度,所以设置了正确的 content-length 标头,一切顺利。

于 2011-07-08T17:47:03.990 回答