gpt4 book ai didi

java - 创建 Rest Web 服务以接收图像

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:28 24 4
gpt4 key购买 nike

您将如何设计一个基于 REST 的 Web 服务来接收 InputStream 形式的图像文件?如果将 InputStream 发送到 REST 端点,该端点如何接收它以便创建图像文件?

最佳答案

在 JAX-RS 中可以接收 InputStream。您只需放置不带注释的 InputStream 参数:

@POST
public void uploadImage(InputStream stream) {
// store image
}

请注意它适用于任何内容类型。

虽然它会起作用,但我建议使用更“JAX-RS 方式”:

1 创建将从 InputStream 创建图像类(例如 java.awt.Image)的提供程序:

@Provider
@Consumes("image/jpeg")
class ImageProvider implements MessageBodyReader<Image> {

public Image readFrom(Class<Image> type,
Type genericType,
Annotation[] annotations,
MediaType mediaType,
MultivaluedMap<String, String> httpHeaders,
InputStream entityStream) throws IOException,
WebApplicationException {
// create Image from stream
}
}

2 像注册资源一样注册提供者。
3 使您的资源类接收 Image 而不是 InputStream。

为什么这种方法更好?
您将反序列化逻辑与资源类分开。因此,如果将来您希望支持更多图像格式,您只需添加额外的提供程序,而资源将保持不变。

关于java - 创建 Rest Web 服务以接收图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5722406/

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