Весной загрузочный контроллер запрашивает тело как ByteArrayEntity протобуфа - PullRequest
0 голосов
/ 18 декабря 2018

Я использую HttpPost на стороне клиента для отправки закодированного объекта protobuf, который сериализован в byte[].Я использую ByteArrayEntity(byte[]), чтобы установить тело HttpPost.

VerificationCodeRequest.Builder testRequestBuilder = new VerificationCodeRequest.Builder();
testRequestBuilder.method = "XX";
testRequestBuilder.country_code = "XXX";
testRequestBuilder.phone_number = "XXXXXXXX";
VerificationCodeRequest testRequest = testRequestBuilder.build();
byte[] data = VerificationCodeRequest.ADAPTER.encode(testRequest);

CloseableHttpClient client = HttpClientBuilder.create().build();
HttpPost request = new HttpPost(urlS);
request.setHeader("User-Agent", "Java client");
request.setHeader("Content-Type", "application/x-protobuf");

request.setEntity(new ByteArrayEntity(data));

HttpResponse response = client.execute(request);

Но в загрузочном приложении Spring отображение запроса не получает этот запрос.

Я пытался вмножественные способы

@RequestMapping(path = "request-verification", method = RequestMethod.POST, consumes =  "application/x-protobuf")
public ResponseEntity requestVerificationCode(VerificationCodeRequest body)


@RequestMapping(path = "request-verification", method = RequestMethod.POST, consumes =  "application/x-protobuf")
public ResponseEntity requestVerificationCode(byte[] body)

Единственное, что нужно сделать - это принять InputStream, но я считаю, что я должен иметь возможность напрямую связать тело, по крайней мере, с байтом [] или даже с Java-объектом Protobuf. * ​​1013 *

@RequestMapping(path = "request-verification", method = RequestMethod.POST, consumes =  "application/x-protobuf")
public ResponseEntity requestVerificationCode(InputStream body)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...