Используйте весенний реактивный веб-клиент для прохождения запроса protobuff - PullRequest
0 голосов
/ 18 февраля 2020

Я использую реактивный веб-клиент Spring Framework для вызова, как показано ниже

webClient.post()
    .uri("/v/score/$model")
    .contentType(MediaType.APPLICATION_JSON)
    .bodyValue(gson.toJson(request))
    .accept(MediaType.APPLICATION_JSON)
    .header("Client-Id", clientId)
    .awaitExchange()
    .awaitBody<ScoringResponse>()

, который работает нормально. Теперь я хочу передать запрос как объект protobuff вместо json. Как я могу это сделать?

1 Ответ

0 голосов
/ 20 февраля 2020

Установите тип носителя на application/octet-stream и передайте свою прототипную модель в виде байтового массива с помощью метода .toByteArray(). На принимающей стороне вы можете использовать stati c метод {proto generated class}.parseFrom({your bytes come here}) для перестроения объекта proto.

Не забывайте, что запрос метода POST в основном состоит из содержимого тела;)

...