RestTemplate的異常 Not enough variables available to expand

當使用 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

相關文章
相關標籤/搜索