當使用 RestTemplate 可能會遇到異常:java
Not enough variables available to expand
典型以下:json
@Autowired private RestTemplate restTemplate; String url = "http://localhost:8080/search?people={\"name\":\"jack\",\"age\":18}"; String email = restTemplate.getForObject(url, String.class);
這樣使用,會出現以下報錯信息:url
Exception in thread "main" java.lang.IllegalArgumentException: Not enough variable values available to expand '"name"'
這個地方很使人費解,難道不能這樣使用?通過一頓查找,發現原來是由於。。。.net
url由於自己的緣由,把花括號 { } 中的內容當成了佔位符,而這裏又沒有明確說明佔位符對應的值,因此會致使報錯。rest
只須要簡單幾步便可解決。在url中使用佔位符,將佔位符的值即所傳 json 放在第3個參數位置。
以下:code
String json = {"\"name\":\"jack\",\"age\":18"}; String url = "http://localhost:8080/search?people={json}"; String email = restTemplate.getForObject(url, String.class, json);
這樣處理以後,就能夠正常使用了。blog
原文:https://blog.csdn.net/ezreal_king/article/details/72654440get