当前位置: 首页 > 知识库问答 >
问题:

接收图像作为多部分文件以Rest服务

和和煦
2023-03-14

我公开了一个restful webservice,我想在json主体请求中接受图像作为多部分文件,我在任何地方都找不到示例json请求,以便从rest客户端访问我的rest服务。我的rest服务在类声明@Consumes({MediaType.APPLICATION\u JSON,MediaType.MULTIPART\u FORM\u DATA})上方使用此字段。有人能给我一个JSON请求示例吗

共有1个答案

艾跃
2023-03-14

多部分/表单数据的目的是在一个请求中发送多个部分。部件可以有不同的介质类型。因此,不应将json和图像混用,而应添加两部分:

POST /some-resource HTTP/1.1
Content-Type: multipart/form-data; boundary=AaB03x

--AaB03x
Content-Disposition: form-data; name="json"
Content-Type: application/json

{ "foo": "bar" }

--AaB03x--
Content-Disposition: form-data; name="image"; filename="image.jpg"
Content-Type: application/octet-stream

... content of image.jpg ...

--AaB03x--

使用RESTeasy客户端框架,您可以创建如下请求:

WebTarget target = ClientBuilder.newClient().target("some/url");
MultipartFormDataOutput formData = new MultipartFormDataOutput();
Map<String, Object> json = new HashMap<>();
json.put("foo", "bar");
formData.addFormData("json", json, MediaType.APPLICATION_JSON_TYPE);
FileInputStream fis = new FileInputStream(new File("/path/to/image"));
formData.addFormData("image", fis, MediaType.APPLICATION_OCTET_STREAM_TYPE);
Entity<MultipartFormDataOutput> entity = Entity.entity(formData, MediaType.MULTIPART_FORM_DATA);
Response response = target.request().post(entity);

可以这样描述:

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response upload(MultipartFormDataInput input) throws Exception {
    Map<String, Object> json = input.getFormDataPart("json", new GenericType<Map<String, Object>>() {});
    InputStream image = input.getFormDataPart("image", new GenericType<InputStream>() {});
    return Response.ok().build();
}
 类似资料:
  • 我想要接收带有请求正文数据的多部分图像文件,但无法弄清楚,为什么会抛出不支持异常 下面是我的实现 编辑:这是我的邮递员配置

  • 我正在使用Spring Boot 1.2。我想上传一个原始二进制文件到控制器。文件大小可能很大,因此我不想将整个请求保存在内存中,而是流式传输文件,事实上,文件是在传输开始时生成的,因此客户端甚至不知道文件的大小。我在这里看到了一个如何使用多部分编码的文件上传进行类似操作的示例。然而,我不想要一个多部分编码的上传,只是一个原始的字节流。我似乎找不到在Spring处理这个用例的方法。

  • 以及multipartConfigElement 但是当我向REST服务发送多部分消息时,仍然会出现以下异常: servlet[dispatcherServlet]在路径[/dev]的上下文中的servlet.service()引发异常[请求处理失败;嵌套异常是java.lang.IllegalArgumentException:预期的multiparthttpServletRequest:是否配

  • 我已经写了下面的代码来做到这一点 - :) 当我从Postman或soap UI工具调用下面的URL时,通过传递所有必需的详细信息,而不是它在数据库中成功存储字节数组,但输入流对象中的字节数组是不正确的,因为如果我在图像文件中转换该字节数组也比该图像文件,我无法打开。 请建议我任何其他事情,我可以做来实现这个.help将是非常可观的。 谢谢。

  • 我需要在Spring MVC中创建一个可以处理JSON和Multipart Form请求的方法。 这是我的方法的签名: ImageDTO类如下所示: 所以这个场景是我需要支持两个场景:1。从表单向上加载图像,其中内容类型为多部分表单(所有DTO成员均不为null)2。使用JSON上传图像,仅使用imageUrl。在本例中,请求正文如下所示: 当前的实现很好地处理了多部分请求,但在发送JSON时,I

  • 我想使用Flink读取输入文件,进行聚合,然后将结果写入输出文件。作业处于批处理模式。请参见字数。py如下: 在运行python wordcount之前。py,我运行echo-e“flink\npyflink\nflink” 虽然我希望有一个包含内容的单个文件/tmp/输出: 实际上,我通过调整下面生成单个文件/tmp/输出的参数,得到了上面的python程序。 运行此版本将生成一个 /tmp/o