我有一个基于运动衫的网络服务,它产生一个“多部分/混合”响应,如下所示: 该方法读取文件,并应以八位字节格式返回。
@GET
@Produces("multipart/mixed")
public byte[] getDocumentContents(@Context HttpHeaders header){
....
....
....
os = new ByteArrayOutputStream();
....
....
....
return os;
}
我的问题是:如何确保响应是OCTET-STREAM类型的?我知道我也可以将上述方法注释为:
@Produces("application/octet-stream")
但我特别要求在以八位字节流格式发送文件时将RESPONSE内容类型设置为“multipart / mixed”。
上述方法是否可以这样做? 我的假设是,但我没有具体的理由。
提前谢谢你!
答案 0 :(得分:1)
我不认为“multipart / mixed”是REST方法返回的有效媒体类型 在我看来,正确的方法是:
@GET
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response getDocumentContents(@HeaderParam("your header param") final YourHeaderParamUserType headerParam) {
byte[] outByteArray = ... obtain byte array
return Response.ok()
.entity(outByteArray)
.build();
}
注意:
您可能希望从标题中“提取”的参数可以使用函数中的参数获取:
@HeaderParam(“你的标题参数”)final YourHeaderParamUserType headerParam
“YourHeaderParamUserType”中唯一不必忘记的是: