Я использую 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)