gpt4 book ai didi

java - 使用带有 JSON 正文的 ReSTLet 进行多部分 POST 处理

转载 作者:行者123 更新时间:2023-12-01 14:42:40 35 4
gpt4 key购买 nike

我正在使用 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 key:value 中,但我宁愿避免这样做),它必须同时发送作为 JSON。我的想法是请求 api 的用户发送一个多部分请求,其中正文为普通 JSON 加上附加文件。

我不太确定如何做到这一点,我找到了 FileUpload ReSTLet 扩展,但它的完整示例很少,所以我不太确定如何使用它。

本质上,问题是如何从 ReSTLet 2+ 中的 Rest 多部分请求中检索正文和文件。

抱歉,我说得有点含糊,我完全迷失了方向。

提前谢谢您。

最佳答案

您需要添加异常处理,但我已经成功提交了“multipart/form-data”表单:

@Put
public Representation uploadFile(final Representation representation){

List<FileItem> items = new RestletFileUpload(
new DiskFileItemFactory()).parseRepresentation(representation);

...

这为您提供了 isFormField() 为 false 的条目的列表项,然后我可以访问媒体类型(从 getContentType() 作为 FileItem 中的字符串)和底层 InputStream 作为文件内容。您可能可以做比直接访问 Stream 更奇特的事情,但这就是我所需要的。

@Put 与 @Post 是我留给你的选择

关于java - 使用带有 JSON 正文的 ReSTLet 进行多部分 POST 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15789047/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com