Spring restTemplate не работает для одинарных кавычек в URL. Работает с почтальоном

Простой обмен restTemplate, используемый для запроса GET.

Заголовок информации

HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.ALL));
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
headers.add("Authorization",  ************);

URL:

/api/odata/GetAvailableObjects?fromTime=datetime'2018-02-02T12:00:00'&$format=json&toTime=datetime'2018-02-10T12:00:00'

Я пытался создать этот URL либо с MessageFormat.format или же URIBuilder, Одиночные кавычки являются проблемой. До сих пор я пытался удвоить их, избежать их или оставить их такими, какие они есть.

Я включил дополнительное ведение журнала с помощью: logging.level.org.springframework.web.client.RestTemplate=DEBUG. Здесь отображается URL-адрес. Если я скопирую этот URL-адрес и вставлю его в POSTMAN, я получу результаты, начиная с весны, я получаю 400 плохих запросов.,

Я полагаю, что в этом может быть какая-то дополнительная кодировка. Есть идеи?

2 ответа

  • У JWT было много возможностей, серверный API решил бросить 400 без каких-либо сообщений, и журналы сервера были недоступны.
  • Флаг в application.properties который устанавливает максимальный размер заголовка.
      URI uri = UriComponentsBuilder.fromUriString(".../api/odata/GetAvailableObjects?fromTime=datetime'2018-02-02T12:00:00'&$format=json&toTime=datetime'2018-02-10T12:00:00'
").build().encode().toUri();

и отправьте uri в шаблоне отдыха, это работает для меня

Другие вопросы по тегам