gpt4 book ai didi

java - 如何从 RESTful Web 服务发送图像?

转载 作者:行者123 更新时间:2023-11-30 10:34:00 25 4
gpt4 key购买 nike

我正在Java 上实现Restful Web 服务,没有框架。我的想法是从文件服务器发送图像,因为将它们存储在数据库中会降低服务器速度。目前,我有以下代码,它返回 json 内容:

@Path("articulo")
public class ArticuloResource {

@Context
private UriInfo context;
private final ArticuloService service;
private final Gson gson;

/**
* Creates a new instance of ArticuloResource
*/
public ArticuloResource() {
this.service = new ArticuloService();
this.gson = new Gson();
}

/**
* Retrieves representation of an instance of ArticuloResource
* @return an instance of com.tienda.rest.pojo.Articulo
*/
@GET
@Produces(Metodos.Parametros.TYPE_APPLICATION_JSON)
public String getJson() {
return this.gson.toJson(this.service.seleccionarTodo());
}

@GET
@Path("novedades")
@Produces(Metodos.Parametros.TYPE_APPLICATION_JSON)
public String getNovedades() {
return "Novedades";
}

@GET
@Path("{id}")
@Produces(Metodos.Parametros.TYPE_APPLICATION_JSON)
public String getArticulo(@PathParam("id") Integer id) {
return this.gson.toJson(this.service.getUnique(id));
}

/**
* PUT method for updating or creating an instance of ArticuloResource
* @param content representation for the resource
* @return an HTTP response with content of the updated or created resource.
*/
@PUT
@Consumes(Metodos.Parametros.TYPE_APPLICATION_JSON)
public void putJson(Articulo content) {
}

@GET
@Produces(Metodos.Parametros.TYPE_IMAGE_PNG)
public Response getImage() {
return null;
}
}

想法?提前致谢。

最佳答案

尝试以下操作:

  @GET
@Produces(Metodos.Parametros.TYPE_IMAGE_PNG)
public Response getImage() {
byte[] bytes = Files.toByteArray("file.png");
return Response.ok(bytes).build();
}

您可以尝试流式传输图像。可能会好一点。 返回 Response.ok(new ByteArrayInputStream(bytes)).build();

但是无论您选择哪个选项,它都会有点慢。您可以将重定向链接发送到另一台服务器,该服务器可以独立于您的应用程序服务器将图像传送到客户端。这比发送图像本身作为响应要好。

关于java - 如何从 RESTful Web 服务发送图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41906204/

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