Java 从另一个Jersey响应的实体生成Jersey响应
对不起,这个问题的标题很笨拙,但这绝对是荒谬的情况。Java 从另一个Jersey响应的实体生成Jersey响应,java,rest,jersey,multipart,jersey-client,Java,Rest,Jersey,Multipart,Jersey Client,对不起,这个问题的标题很笨拙,但这绝对是荒谬的情况。 我正在使用Jersey客户端从第三方服务器接收数据。在我这方面,我正在等待多部分/混合数据,而且大多数情况下它是有效的。但有时服务器会使用应用程序/八位字节流数据进行响应,而此响应的实体是。。。我正在等待的多部分/混合数据包 Content-Type: multipart/mixed; boundary="XXXXXXX" --XXXXXXX Content-Type: image/gif datadatadata 因此,我需要从该实体创
我正在使用Jersey客户端从第三方服务器接收数据。在我这方面,我正在等待多部分/混合数据,而且大多数情况下它是有效的。但有时服务器会使用应用程序/八位字节流数据进行响应,而此响应的实体是。。。我正在等待的多部分/混合数据包
Content-Type: multipart/mixed; boundary="XXXXXXX"
--XXXXXXX
Content-Type: image/gif
datadatadata
因此,我需要从该实体创建Jersey客户端响应。我试着用ReaderInterceptor来做
public class MMSLargeAttachmentHandlerFix implements ReaderInterceptor {
@Override
public Object aroundReadFrom(ReaderInterceptorContext context) throws IOException, WebApplicationException {
MultivaluedMap<String, String> m = context.getHeaders();
fixISAndHeaders(context);
return context.proceed();
}
private void fixISAndHeaders(ReaderInterceptorContext context) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(context.getInputStream(), "ISO-8859-1"));
context.getHeaders().putSingle("Content-Type", br.readLine());
br.readLine();
context.setInputStream(new ReaderInputStream(br, "ISO-8859-1"));
}
}
公共类mmslageAttachmentHandlerFix实现ReaderInterceptor{
@凌驾
ReadFrom周围的公共对象(ReaderInterceptorContext上下文)引发IOException、WebApplicationException{
MultivaluedMap m=context.getHeaders();
fixISAndHeaders(上下文);
返回上下文。继续();
}
私有void fixISAndHeaders(ReaderInterceptorContext上下文)引发IOException{
BufferedReader br=新的BufferedReader(新的InputStreamReader(context.getInputStream(),“ISO-8859-1”);
context.getHeaders().putSingle(“内容类型”,br.readLine());
br.readLine();
setInputStream(新的ReaderInputStream(br,“ISO-8859-1”);
}
}
但当我试图读取实体时,我得到异常,原因是“缺少起始边界”。因此,我的方法似乎遗漏了一些东西