对不起蹩脚的问题标题,但这绝对是荒谬的情况 我正在使用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"));
}
}
但是当我尝试读取实体时,我会因为“缺少起始边界”而获得异常。所以我似乎错过了我的方法。