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);
希望这对其他人有帮助。
我想调用接受 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);
希望这对其他人有帮助。