为了账号安全,请及时绑定邮箱和手机立即绑定

从REST Web服务向客户端发送文件的正确方法是什么?

从REST Web服务向客户端发送文件的正确方法是什么?

慕桂英3389331 2019-11-25 12:38:37
我刚刚开始开发REST服务,但是遇到了一个困难的情况:将文件从REST服务发送到客户端。到目前为止,我已经掌握了如何发送简单数据类型(字符串,整数等)的窍门,但是发送文件是另一回事,因为有太多文件格式,我什至不知道从哪里开始。我的REST服务是在Java上进行的,并且我正在使用Jersey,我正在使用JSON格式发送所有数据。我已经读过有关base64编码的信息,有人说这是一种好技术,而其他人则说这不是因为文件大小问题。正确的方法是什么?这是我项目中的简单资源类的外观:import java.sql.SQLException;import java.util.List;import javax.ws.rs.GET;import javax.ws.rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.core.Context;import javax.ws.rs.core.MediaType;import javax.ws.rs.core.Request;import javax.ws.rs.core.UriInfo;import com.mx.ipn.escom.testerRest.dao.TemaDao;import com.mx.ipn.escom.testerRest.modelo.Tema;@Path("/temas")public class TemaResource {    @GET    @Produces({MediaType.APPLICATION_JSON})    public List<Tema> getTemas() throws SQLException{        TemaDao temaDao = new TemaDao();                List<Tema> temas=temaDao.getTemas();        temaDao.terminarSesion();        return temas;    }}我猜发送文件的代码是这样的:import java.sql.SQLException;import javax.ws.rs.GET;import javax.ws.rs.Path;import javax.ws.rs.Produces;@Path("/resourceFiles")public class FileResource {    @GET    @Produces({application/x-octet-stream})    public File getFiles() throws SQLException{ //I'm not really sure what kind of data type I should return        // Code for encoding the file or just send it in a data stream, I really don't know what should be done here        return file;    }}我应该使用哪种注释?我见过有人建议@GET使用@Produces({application/x-octet-stream}),这是正确的方法吗?我要发送的文件是特定的文件,因此客户端不需要浏览文件。谁能指导我如何发送文件?我是否应该使用base64对其进行编码以将其
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 573 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信