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);
这样处理之后,就可以正常使用了。
说明: 用Spring
RestTemplate
请求URL为"http://dfff/fsda?queryParam={\"fds\":\"www\"}"时报not enough variable values
available
异常
,其根本原因是
RestTemplate
认为大括号{…}在给定的URL作为一个URI变量占位符和试图取代他们
解决: 可用queryParam={queryParam}......
Failed to convert value of type ‘java.lang.String‘ to required type ‘java.lang.Long‘总是说请求参数类型错误
项目场景:
项目背景:
使用
RestTemplate
进行http调用时产生的Not enough variable values
available
to
expand
'""'报错
本来想通过url后拼接参数的方法去调用远程服务,把json串直接放在了url中
//调用女娲接口发送用户密码信息
JSONObject jobj=new JSONObject();
String user_name=user1.getName();
String user_nick
问题描述:
java.lang.IllegalArgumentException: Not enough variable values
available
to
expand
'wechat.corpid'
问题分析:
1、使用@Value注解时使用错误。
@Value("{wechat.corpid}")
private String corpid;
解决办法:检测@Value注解格式是否正确。
@Value("${wechat.corpid}")
"timestamp": "2020-08-11T12:11:39.982+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Not enough variable values
available
to
expand
'1'",
"path": "/directory/insertDirectory"
这个错误是因为下方代码中restTem...
restTemplate
java.lang.IllegalArgumentException: Not enough variable values
available
to
expand
www.baidu.com/test?name=zhangsan&data={"age":"18"}
其实就是两个参数,一个参数是zhangsan 一个参数是{"age":"18"}
但是当用
resttemplate
的getforentity(或getforbody的时候)使用
//先把对象转化为Json
String data = JSON.toJSONString(QueryCorpParam.builder().pageIndex(0).pageSize(1).corpCode(param.getCreditCode()).build());
//拼接时,用URLEncoder.encode去转译一下
String param = "&sign=".concat(sign).concat("&corpSign=").concat(URLEncoder.en.
1.上线在即,但是上游却一直在改动,导致下游很无力。不断去迎合。
(1)第一次修改,因为测试环境的服务器不存在防火墙的问题,所以代码本身是不存在任何问题,但是因为担心(因为有两台服务器。一台作为前端的访问,一台作为后台的处理。并且两台服务器所在的网络层不同,并且在调取上游接口的时候会有防火墙的问题),直接在prod 环境上面进行了测试,发现:写的代码在prod 环境会存在防火墙的问题,导致接口调不通。此前的前台有调上游的接口,第一次修改开始。
直接将前台的接口转发的后台的服务器。然后去调上游的接口,避免
用 Spring
RestTemplate
请求URL为"http://dffffff/fdsa?queryParam={\"fds\":\"www\"}"时报Not enough variable values availabel
异常
,其根本原因是
RestTemplate
认为大括号{…}在给定的URL作为一个URI变量占位符和试图取代他们,
可用queryParam={queryPar
RestTemplate
get请求url附带json数据频频出现报错信息
Spring
RestTemplate
Exception: “Not enough
variables
available
to
expand
”
当我们尝试在 GET 请求中发送 JSON 数据时,通常会发生
异常
。
简单地说,
RestTemplate
提供了getForObject方法,通过对指定 URL 发出 GET 请求来获取表示。
该
异常
的主要原因是
RestTemplate
将大括号中封装的 JSON 数据视为 URI
java.lang.IllegalArgumentException: Not enough variable values
available
to
expand
'66'
配置springcloud的consumer的服务的controller层错误
@RequestMapping("/findGenShenById")
public GenShen findGenShenById(Integer uid) {
System.out.println("how abou...
https://dataflow.spring.io/docs/2.5.0.SNAPSHOT/installation/kubernetes/kubectl/
Version: 2.5.0 SHAPSHOT
------------------------------------------------
docker 18.06
kubernetes 1.17.3
-------------...
异常:Invalid character found in the request target. The valid characters are defined in RFC 3986
101499