标签:available String url variables RestTemplate 占位 json name
当使用 RestTemplate 可能会遇到异常:
Not enough variables available to expand
典型如下:
@Autowired
private RestTemplate restTemplate;
String url = "http://localhost:8080/search?people={\"name\":\"jack\",\"age\":18}";
String email = restTemplate.getForObject(url, String.class);
这样使用,会出现如下报错信息:
Exception in thread "main" java.lang.IllegalArgumentException: Not enough variable values available to expand '"name"'
这个地方很令人费解,难道不能这样使用?经过一顿查找,发现原来是因为。。。
url因为本身的原因,把花括号 { } 中的内容当成了占位符,而这里又没有明确说明占位符对应的值,所以会导致报错。
只需要简单几步即可解决。在url中使用占位符,将占位符的值即所传 json 放在第3个参数位置。
如下:
String json = {"\"name\":\"jack\",\"age\":18"};
String url = "http://localhost:8080/search?people={json}";
String email = restTemplate.getForObject(url, String.class, json);
这样处理之后,就可以正常使用了。
参考:
原文:https://blog.csdn.net/ezreal_king/article/details/72654440
标签:available,String,url,variables,RestTemplate,占位,json,name 来源: https://www.cnblogs.com/eternityz/p/12241395.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。