Сделать ответ Джерси из объекта другого ответа Джерси

#java #rest #jersey #multipart #jersey-client

#java #остальное #джерси #составная часть #джерси-клиент

Вопрос:

Извините за неуклюжее название вопроса, но это абсолютно абсурдная ситуация.
Я использую клиент Джерси для получения данных со стороннего сервера. На моей стороне я жду составных / смешанных данных, и в большинстве случаев это работает. Но иногда сервер отвечает данными application / octet-stream, и объект этого ответа является… составной / смешанный пакет, который я жду.

 Content-Type: multipart/mixed; boundary="XXXXXXX"

--XXXXXXX
Content-Type: image/gif
datadatadata
  

Итак, мне нужно создать ответ клиента Джерси из этого объекта.
Я пытался сделать это с помощью 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"));
    }

}
  

Но когда я пытаюсь прочитать объект, я получаю исключение с причиной «отсутствует начальная граница». Похоже, я что-то упускаю в своем подходе.