繁体   English   中英

如何调用restlet资源

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM