java如何在请求参数spring中使用对象编码url字符串
我试图在Spring应用程序中将对象作为请求参数执行请求
new RestTemplate().getForObject("http://127.0.0.1:8080/items?filter={\"level\":\"BIG\"}", Item.class);
但是得到错误:
正如我所发现的,当UriBuilder解析带有url的字符串时,就会出现问题。即新的URI(…)给出了错误。当我向邮递员提出同样的要求时,我得到了令人满意的答复。如何正确编码url?我试着用java。网但这会产生“IllegalArgumentException:URI不是绝对的”错误
更新:
请求中的Filter类用于在远程服务器的mongodb中进行参数化查询(query())。过滤器类别:
@Getter
@NoArgsConstructor
public class Filter {
private Map<String, String> criteria;
@JsonAnySetter
public void add(String key, String value) {
if (criteria == null) {
criteria = new HashMap<>();
}
criteria.put(key, value);
}
}
项目对象类:
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Item {
private String id;
private String name;
private Instant timestamp;
}
# 1 楼答案
我有像你这样的问题,我用下面的代码片段来解决它
然后调用resttemplate,如下所示
希望对你有帮助