restEasy接受http请求的三种方式

配置类的访问路径:

@Path(GlobalConstants.DBPROXY_SERVER_CONTEXT + "/" + Version._1 + "/attachment")


配置方法的访问路径:

获取get请求:

返回给客户端的是json类型

@Path("/get/{ID}")
@GET
@Produces("application/json")
public ServerResponse getAttachment(@PathParam(value = "ID") String ID)

获取post请求

@POST

public ServerResponse getAttachment(@FormParam(value = "ID") String ID)

获取put传输的文件:

@Context
使用@Context可以获取HttpServletRequest,HttpServletResponse。

@Path("/newAttach/{ID}")
	@PUT
	@Produces("application/json")
	public ServerResponse newAttach(@PathParam("ID") String ID,@Context HttpServletRequest request) throws IOException{
		Long requestTime = System.currentTimeMillis();
		logger.info("@GET " + requestTime + " AttachmentResource.newAttach ID:" + ID );
		ServerResponse sr = null;
		InputStream in = null;
		try {
			
			in = request.getInputStream();
			byte[] data = IOUtil.read(in);
			AttachmentHelper.newAttach(ID,data);
			sr = new ServerResponse("{\"isSuccess\":\"true\"}");
		} catch (EOPException e) {
			e.printStackTrace();
			logger.error("EXCEPTION:" + e.getExceptionCode() + " CODE:" + e.getExceptionCode().getCode() + " MESSAGE:" + e.getMessage(), e);
			sr = new ServerResponse(e.getMessage(), e.getExceptionCode());
		}catch (Exception e) {
			e.printStackTrace();
			logger.error(e.getMessage(), e);
			sr = new ServerResponse(e.getMessage(), ExceptionCode.DBPROXY_OTHER);
		}
		logger.info("@GET " + requestTime + " ServerResponse.newAttach sr:" + sr.toString() + " use:" + (requestTime - System.currentTimeMillis()));
		return sr;
	}

resteasy返回响应文件,在produces里可以写("*/*")可以表示任意文件,使用@context注解获取response。

@Path("/getAttach/{ID}")
	@GET
	@Produces("*/*")
	public ServerResponse getAttach(@PathParam("ID") String ID,@Context HttpServletResponse response){
		Long requestTime = System.currentTimeMillis();
		logger.info("@GET " + requestTime + " AttachmentResource.getAttach ID:" + ID );
		OutputStream outputStream = null;
		ServerResponse sr = null;
		byte[] data = null;
		try {
			outputStream = response.getOutputStream();
			data  = AttachmentHelper.getAttach(ID);
			outputStream.write(data);
			outputStream.flush();
			outputStream.close();
		} catch (EOPException e) {
			e.printStackTrace();
			logger.error("EXCEPTION:" + e.getExceptionCode() + " CODE:" + e.getExceptionCode().getCode() + " MESSAGE:" + e.getMessage(), e);
			sr = new ServerResponse(e.getMessage(), e.getExceptionCode());
		}catch (Exception e) {
			e.printStackTrace();
			logger.error(e.getMessage(), e);
			sr = new ServerResponse(e.getMessage(), ExceptionCode.DBPROXY_OTHER);
		}
		logger.info("@GET " + requestTime + " ServerResponse.getAttach sr:" + sr.toString() + " use:" + (requestTime - System.currentTimeMillis()));
		return sr;
	}






  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值