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 в шаблоне отдыха, это работает для меня