У меня есть метод, который отправляет на сервер данные:
public void setFloor(String floor) throws IOException {
byte[] array = floor.getBytes();
URL url = new URL("http://localhost:8080/level");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
try (BufferedOutputStream bos = new BufferedOutputStream(connection.getOutputStream())) {
bos.write(array, 0, array.length);
}
}
Но все они приходят со знаком "=", то есть при дебагге в массиве байт только один символ, отправляю "6", но на сервер приходит уже "6=" и тд. Как мне это исправить?
Вот код чтения данных на сервере:
@PostMapping()
public String postEndPoint(@RequestBody String floor) {
return elevatorService.setFloor(Integer.valueOf(floor));
}
Вообще, у меня приходят только числовые значения, но тип Integer вообще не доходит, а String приходит с =
Самый простой способ передачи байтов по HTTP, это преобразование этих байтов в Base64 и передачи их как обычный текст. На стороне клиента Вы, при помощи Base64 кодируете массив байтов и отправляете в теле запроса как текст. На сторне сервера, Вы принимаете String и декодируете его обратно в массив байтов.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Написал свой LinkedList, решил протестировать код и застрял на том, что после использования assertThat падает тест, показывает непонятный пробел перед...
Изучаю серверы, пока на простом уровнеЗадача такая: сервер загадывает число, клиент должен его угадать