Как установить собственное значение в качестве границы, отправляя составные данные с помощью трикотажа?

Я отправляю составные данные с jersey-client, и jersey client сам генерирует границу.
И моя проблема в том, что сервер-потребитель анализирует входящий поток TCP как необработанные данные, используя свое собственное постоянное значение в качестве границы. Звучит странно, я знаю :) Но я не могу что-то сделать на этой стороне сервера.
Поэтому мне нужно установить границу самому, но я не могу найти подходящего метода для этого в FormDataMultiPart. Как я могу это решить? Это вообще возможно?


person mkrakhin    schedule 22.11.2013    source источник
comment
используя собственное постоянное значение в качестве границы. Вау, это звучит как дерьмо.   -  person    schedule 22.11.2013
comment
Я знаю. Это было забавно в начале. Но теперь мне нужно как-то с этим справляться.   -  person mkrakhin    schedule 22.11.2013


Ответы (1)


Сделайте так, чтобы ваш метод возвращал Response и задавал тип носителя ответа самостоятельно:

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response post(
        @FormDataParam("part") String s,
        @FormDataParam("part") FormDataContentDisposition d) {

    final Map<String, String> parameters = Maps.newHashMap();
    parameters.put("boundary", "myboundary");

    final MediaType mediaType = new MediaType("multipart", "form-data", parameters);

    return Response
            .ok(s + ":" + d.getFileName(), mediaType)
            .build();
}
person Michal Gajdos    schedule 25.11.2013