我无法使用RestyGWT接收纯文本。一个非常简单的测试服务看起来像这样:
@GET
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
void test(MethodCallback<String> callback);
在客户端,我总是得到:
Response was NOT a valid JSON document
查看HTTP响应我发现内容类型设置正确:
Content-Type:text/plain
问题是什么?为什么RestyGWT尝试将其解析为JSON?我做错了吗?
答案 0 :(得分:4)
如果您使用TextCallback
代替MethodCallback<String>
,则不会出现此错误。
它会自动将Accept
标题设置为text/plain
,因此您不必在异步界面中使用@Produces
标注。
答案 1 :(得分:2)
好吧,RestyGWT是一个Json库,AFAIK它不能处理纯文本,XML或其他任何东西。 "foo"
不是有效的Json数据,应为["foo"]
或{"stuff": "foo"}
。
事实上,在我们的Rest API中,我们尝试发送纯文本(id),但我们最终创建了一个包含id的简单对象。