URI в качестве параметра в контроллере Spring возвращает ошибку при передаче специальных символов

Я создал метод в контроллере, который принимает URI в качестве параметра:

  @PutMapping("/value")
  public ResponseEntity<?> setValue(@RequestParam("value") URI value);

Но при передаче значений, которые содержат специальные символы, Spring кидает исключение IllegalArgumentException, которая оборачивается в TypeMismatchException, и соответственно возвращает ошибку 400 Bad Request. Пример значения: 1234245!№%25@. Запрос отправляю через Postman.

По-видимому, ошибка происходит при создании URI, поскольку в конструктор приходит значение 1234245!№%@ (декодированное). По крайней мере, при замене URI на String я вижу значение 1234245!№%@.

Есть ли какой-нибудь способ сделать так, чтобы Spring нормально создавал URI с специальными символами?


Ответы (0 шт):