Spring restTemplate不适用于URL中的单引号,和 Postman 一起工作

ikfrs5lh  于 2023-04-28  发布在  Spring
关注(0)|答案(2)|浏览(281)

用于GET请求的简单restTemplate交换。
标题信息

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

网址:

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

我尝试使用MessageFormat.formatURIBuilder构建此URL。单引号是问题所在。到目前为止,我试图加倍他们,逃避他们或离开他们。
我启用了一些额外的日志记录:logging.level.org.springframework.web.client.RestTemplate =DEBUG这将显示URL。.如果我复制该URL并将其粘贴到POSTMAN中,我会收到结果,从spring我收到400 Bad request。
我想这可能是一些额外的编码造成的。有什么想法吗

jmo0nnb3

jmo0nnb31#

  • JWT有很多作用域,服务器API决定抛出400而没有任何消息,服务器日志不可用。.
  • application.properties中的一个标志,用于设置最大标头大小。
nbysray5

nbysray52#

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();

并在REST模板中发送URI,这对我很有用

相关问题