【问题标题】:Spring restTemplate not working for single quotes in URL. Works with postmanSpring restTemplate 不适用于 URL 中的单引号。与邮递员合作
【发布时间】:2018-04-07 14:52:50
【问题描述】:

用于 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 中,我会收到结果,从春天开始我收到 400 Bad request。

我想这可能是一些额外的编码问题。 有任何想法吗?

【问题讨论】:

  • 你可以尝试使用wireshark查看实际发送的内容。

标签: java spring resttemplate messageformat


【解决方案1】:
  • JWT 有很多作用域,服务器 API 决定抛出 400 而没有任何消息,并且服务器日志不可用..
  • application.properties 中设置最大标头大小的标志。

【讨论】:

  • 很高兴看到你回来并用你找到的解决方案回答你自己的问题,但是......你在说什么并不完全清楚 - 特别是你的第二点。
猜你喜欢
  • 1970-01-01
  • 2019-08-25
  • 2013-09-03
  • 1970-01-01
  • 2023-03-30
  • 2019-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多