最初使用RestTemplate 进行远程调用方法如下:
private String getRemoteData(String url) {logger.info("Request URL :" + url + "|");String resp = ForObject(url, String.class);logger.info("Response result : " + String());return resp;}
但发现请求结果一直为空。
最后发现由于我们的业务场景中,请求参数包含中文要求按指定规则转码,导致请求url中包含% ,而RestTemplate会自动调用encode方法进行转义,将%转义成了%25 。
解决方法,自建URI 传入:
private String getRemoteData(String url) {logger.info("Request URL :" + url + "|");String resp = null;try {URI uri = new URI(url);resp = ForObject(uri, String.class);} catch (URISyntaxException e) {("Create URI Exception !");}logger.info("Response result : " + String());return resp;}
本文发布于:2024-02-01 11:27:06,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170675802636271.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |