我正在使用Spring拨打Rest服务电话。如果我传递了所有参数或为参数传递了空字符串,则其余调用工作正常。但是,如果我故意不传递任何参数,它将引发以下异常。请注意,查询参数都是可选的。
IllegalArgumentException:地图对someField没有值。”
在下面的示例中,我不想为some_field字段传递任何内容。但是,除非我输入一个空字符串,否则它不会起作用。如之前提到。
在我的配置文件中:
url=https://mydomain/locale/type/{type}/id/{id}?some_field={someField}&my_point={myPoint}
进行剩余呼叫的方法。
public Object getDetails(String url) {
HashMap<String, String> params = new HashMap<>();
params.put("id", id);
params.put("my_point", myPoint);
// params.put("some_field", ""); // Works if I add this.
params.put("type", someType);
return template.exchange(url, HttpMethod.GET, requestEntity, responseType, params);
}
答案 0 :(得分:0)
也许尝试用if块将其包围,以检查您的参数是否为null。如果是这样,请执行代码以使其正常运行,或者如果有的话,将其照常放入参数中。
if(some_field == null){
params.put("some_field", "");
} else {
//your expected execution when that some_field contains something goes here
}