让泽西回应来自泽西岛另一回应的实体

时间:2014-06-18 09:39:29

标签: java rest jersey multipart jersey-client

对不起蹩脚的问题标题,但这绝对是荒谬的情况 我正在使用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"));
    }

}

但是当我尝试读取实体时,我会因为“缺少起始边界”而获得异常。所以我似乎错过了我的方法。

0 个答案:

没有答案