[英]Rest tamplate 400 null - bad request
我有这部分代码:
try {
ResponseEntity<T> responseEntity = restTemplate.exchange(builder.build().encode().toUri(), HttpMethod.GET, null,
new ParameterizedTypeReference<T>() {
});
if (responseEntity == null || responseEntity.getBody() == null || responseEntity.getBody() == null) {
throw ApiException.createFrom(ResponseCode.REQUEST_INVALID, "Severity for this input is not found!");
} else {
return (LinkedHashMap<Object, Object>) responseEntity.getBody();
}
问题是我总是得到 400 null 错误。
当我在 swagger 中询问过滤器参数时: [{"attribute":"tapId","filterOperation":"EQUALS","expressionValue":"00b83d4c-afad-47fb-b66b-07c93971c69b"}]
我得到这个 url:
?filter=%5B%7B"attribute"%3A"tapId"%2C"filterOperation"%3A"EQUALS"%2C"expressionValue"%3A"00b83d4c-afad-47fb-b66b-07c93971c69b"%7D%5D
这是有效的,但是当我用这部分代码调用它时:
builder.queryParam("filter", String.join(",", filter));
接着
ResponseEntity<T> responseEntity = restTemplate.exchange(builder.build().encode().toUri(), HttpMethod.GET, null,
new ParameterizedTypeReference<T>() {
});
我得到这个 url
?filter=%7B%22attribute%22:%22tapId%22,%22filterOperation%22:%22EQUALS%22,%22expressionValue%22:%2200b83d4c-afad-47fb-b66b-07c93971c69b%22%7D
这不起作用,我收到此错误。 有什么建议我该如何解决?
%5B%7B"attribute"%3A"tapId"%2C"filterOperation"%3A"EQUALS"%2C"expressionValue"%3A"00b83d4c-afad-47fb-b66b-07c93971c69b"%7D%5D
这是滤波器参数object直接转换的结果。
String filterObject = "[{\"attribute\":\"tapId\",\"filterOperation\":\"EQUALS\",\"expressionValue\":\"00b83d4c-afad-47fb-b66b-07c93971c69b\"}]"
我认为以下应该有效。
builder.queryParam("filter", filterObject);
我为什么这么想?
因为%5B = [
等等。
你可以检查这个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.