Spring Rest 模板 Url 包含复杂查询

Spring Rest Template Url contains complex query

我想调用接受 url 查询参数的 Web 服务。 这是查询:

{PK} IN({{Select {o.name}  from {Student! as o} where {o.name} IN ({{Select {s.pk} 
 from {School as s} where {s.code}="school"}})}})

我使用 this

对查询进行编码

然后我将编码查询放在网络服务中 url : http://host?query=query_above_encoded.

因此,当执行此操作时(使用 resttemplate 调用 Web 服务):

ResponseEntity<Model> response = restTemplate.exchange(
                    url, HttpMethod.GET, request, Model.class);

我得到这个异常:

org.springframework.web.client.HttpServerErrorException: 500 Erreur Interne de Servlet

但是当我使用休息客户端应用程序(作为 Postman)调用相同的 url 时,会得到响应。

有没有人有什么想法?

解决方案是在编码 url:

之后使用 URI JAVA 对象
ResponseEntity<Model> response = restTemplate.exchange(
                    new URI(encodedUrl), HttpMethod.GET, request, Model.class);

希望这对其他人有帮助。