首页 > 解决方案 > 浏览器和邮递员返回结果,但由于 %26,Rest 模板返回 0 个结果

问题描述

在我的网址中有查询部分。在查询中我通过了 %26。例子

"http://host.com/api/1/searcharticles?key=XXXXXX&query=(subject:"Polls %26 Surveys")"

如果我在 Postman 或浏览器中运行相同的 URL,那么它会返回 21 个结果,但如果我在 RestTemplate 中运行,它会返回 0 个结果。我相信 API 无法识别 %26。

我也在 Python 中尝试了相同的 URL,它返回了 21 个结果。

示例代码

url = "http://host.com/api/1/searcharticles?key=XXXXXX&query=(subject:"Polls %26 Surveys")";
byte[] gzipResponse = restTemplate.exchange(metabaseUrl, HttpMethod.GET, entity, byte[].class).getBody();
String string = new String(gzipResponse);
System.out.println(string);

标签: javaspringresttemplate

解决方案


使用 RestTemplate 时不要只使用 %26 尝试使用 URLEncoder

URLEncoder.encode(your url string, "UTF-8")

推荐阅读