[英]How to invoke a restlet resource
我有一个restlet资源,如下所示:
@Get("json")
public List<String> retrieve() {
MyCityService nh = (MyCityService)getContext().getAttributes().get(MyCityService.class.getCanonicalName());
return nh.getReport();
}
如你所见,它返回一个字符串列表。 我尝试使用以下代码在远程类中获取返回值:
ClientResource client = new ClientResource("http://remoteserver.com/mycity/nh/json");
System.out.println(client.get().getText());
getText()
方法将List的整个内容作为一个字符串返回,但我想分别在List中添加每个字符串值。 有没有办法做到这一点?
我建议你去JSON数据交换。 只需进行少量更改,您就可以使用任何JSON Parser for Java库来完成。 我推荐[JSON Lib]( http://sourceforge.net/projects/json-lib )
在您的休息Web服务中,您可以使用
@Get("json")
@Produces("MediaType.APPLICATION_JSON") // It will return JSON Object as response
public List<String> retrieve() {
MyCityService nh = (MyCityService)getContext().getAttributes().get(MyCityService.class.getCanonicalName());
return nh.getReport();
}
在Client部分中,您可以使用JSON.parser将数据解析回列表。
JSONObject jsonObject = (JSONObject) jsonParser.parse(client.get().getText());
System.out.println(jsonObject.get("firstname"));
System.out.println(jsonObject.get("firstname"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.