繁体   English   中英

Rest 模板 400 null - 错误请求

[英]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 = [等等。

你可以检查这个。

POST 请求中的 %5B 和 %5D 代表什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM