java - 浏览器和邮递员返回结果,但由于 %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);
解决方案
使用 RestTemplate 时不要只使用 %26 尝试使用 URLEncoder
URLEncoder.encode(your url string, "UTF-8")
推荐阅读
- google-signin - Google OAuth 2.0 - 离线访问的增量授权
- javascript - google-maps-react 在拖动结束时获取标记位置
- python - Python Argparse 子解析器
- ruby-on-rails - 有没有办法知道迁移正在运行?
- python - numpy 随机生成器有偏差吗?
- python - 如何在python icrawler中使用搜索关键字重命名爬虫文件
- c# - WCF crm 连接失败,由于字符串不安全
- razor - 如何在 ASP.NET 网页中进行 MD5 散列(razor 语法/cshtml)
- python - 如何移动图片按钮?Pyqt5 蟒蛇
- git - Git,错误:远程解包失败:无法创建临时对象目录-通过创建新分支