我正在使用Restlet编写REST API。 我主要使用JSON作为我所有POST请求的主体,所以在我的代码中正常的POST看起来像这样:
@Post("json")
public Representation storeValue(String value){
JSONObject json = (JSONObject) JSONValue.parse(value);
String uname = (String)json.get("name");
...}
我从请求的正文中获取JSON字符串并解析它,执行我的操作并返回响应表示。
在这里,我想再做一件事,我有一个文件(它是一个xml,我想可以复制粘贴在一个json密钥中:值但我宁愿避免这个)必须同时发送作为JSON。我的想法是请求我的api用户发送一个多部分请求,正文为JSON加上附件。
我不太清楚我是怎么做到的,我找到了FileUpload Restlet扩展但很少有完整的例子,所以我不太清楚如何使用它。
实质上,问题是如何从Restlet 2 +中的Rest多部分请求中检索正文和文件。
抱歉有点模糊,我很失落。
提前谢谢。
答案 0 :(得分:1)
您需要添加异常处理,但我已成功完成,提交“multipart / form-data”表单:
@Put
public Representation uploadFile(final Representation representation){
List<FileItem> items = new RestletFileUpload(
new DiskFileItemFactory()).parseRepresentation(representation);
...
它为您提供了一个列表项,其中isFormField()为false的条目(或那些)我可以访问媒体类型(来自getContentType()作为FileItem中的String)和底层InputStream作为文件内容。你可能比直接访问Stream更能体验但这就是我所需要的。
@Put vs @Post是我留给你的选择