Spring RestTemplate пересылает большой файл в другой сервис

1

Я пытаюсь переслать большой файл, вытащенный в качестве входного потока, в другую службу, используя spring restmemplate. Я последовал за ответом @artbristol в этом разделе: Как пересылать большие файлы с помощью RestTemplate?

И похоже, что он правильно настроил тело запроса (захват запроса с помощью charlesproxy). Проблема в том, что я не задал заголовки правильно, так как я считаю, что мне нужно установить тип содержимого как multipart/formdata, который я попытался, добавив это в обратный вызов:

request.getHeaders().setContentType(
                new MediaType("multipart", "form-data"));

Но в заголовках http я все еще не хватает границ, не знаю, как это установить, и я уверен, что, вероятно, мне не хватает других настроек.

Теги:
spring
resttemplate

2 ответа

0

Похоже, проблема заключается в том, что я не включил путь к htrace-core.jar в пути искрового класса: spark-shell -driver-class-path/opt/cloudera/parcels/CDH/lib/hbase/hbase- server.jar: /opt/cloudera/parcels/CDH/lib/hbase/hbase-protocol.jar: /opt/cloudera/parcels/CDH/lib/hbase/hbase-hadoop2-compat.jar:/опт/Cloudera/посылок /CDH/lib/hbase/hbase-client.jar: /opt/cloudera/parcels/CDH/lib/hbase/hbase-common.jar: /opt/cloudera/parcels/CDH/lib/hbase/lib/htrace-core.jar:/и т.д. /HBase/CONF

Похоже, это ново для искры 1.x

0

Поэтому я смог понять это. В основном мне нужно было создать преобразователь сообщений Spring, который будет принимать входной поток и выписать его в тело. Я также в основном должен использовать Form Message Converter, чтобы выписать тело ответа.

Поэтому в restTemplate я вызываю конвертер сообщений для добавления нового конвертера сообщений потока. В обратном вызове я создаю многовалютную карту, которая принимает строку и входной поток и переносит это вокруг HttpEntity. Затем я создаю новый экземпляр конвертера форм-сообщений и звоню на запись, передавая запрос и карту mutlivaluemap.

  • 2
    Ваше объяснение кажется довольно ясным, но некоторые примеры кода будут иметь большое значение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню