我正在为电子商务网站构建一个框架。我用jersey来创建REST API。我需要根据请求将图像发送给客户端。 我怎样才能从我的应用程序服务器那样做Tomcat和jersey作为REST API?
由于我是新手,我不知道如何将图像作为项目显示给Android客户端。
答案 0 :(得分:1)
每个资源都由URI标识,客户端将通过查询URL来请求特定图像或一堆图像,因此您只需要公开服务,以下服务是将单个图像发送到客户端的示例。 / p>
@GET
@Path("/images/{imageId}")
@Produces("image/png")
public Response downloadImage(@PathParam("imageId") String imageId) {
MultiMediaDB imageDb = new MultiMediaDB();
String filePath = imageDb.getImage(imageId);
File file = new File(filePath);
ResponseBuilder response = Response.ok((Object) file);
response.header("Content-Disposition",
"attachment; filename=\"fileName.png\"");
return response.build();
}
MultiMediaDB是我从DB获取文件位置的自定义类,您可以将其硬编码为现在用于测试目的,如 D:\ server_image.png 。
您需要提及内容处理作为附件,以便不会下载该文件,而是附加到表单。
在Android中你只是需要从HttpURLConnection对象读取输入流并将其发送到位图,如下所示
URL url = new URL(BaseUrl + "/images/" + imageId);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.connect();
iStream = urlConnection.getInputStream();
bitmap = BitmapFactory.decodeStream(iStream);
您可以将该位图设置为imageview或您拥有的容器。