Java 如何在Spring Boot中将RestTemplate与非字符串查询参数一起使用?

Java 如何在Spring Boot中将RestTemplate与非字符串查询参数一起使用?,java,spring-boot,rest,resttemplate,query-parameters,Java,Spring Boot,Rest,Resttemplate,Query Parameters,我在一个Spring启动项目中使用RestTemplate,我有4个查询参数,其中2个是String,一个是BigDecimal,一个是boolean:String name,String channel,BigDecimal code,boolean isCreated。我想问您如何发送这个非字符串查询参数,因为我看到getQueryParams()需要一个映射 我正在使用这种实现: UriComponents uriComponents = UriComponentsBuilder

我在一个Spring启动项目中使用RestTemplate,我有4个查询参数,其中2个是String,一个是BigDecimal,一个是boolean:String name,String channel,BigDecimal code,boolean isCreated。我想问您如何发送这个非字符串查询参数,因为我看到getQueryParams()需要一个映射

我正在使用这种实现:

    UriComponents uriComponents = UriComponentsBuilder
            .fromHttpUrl(basePath)
            .path(apiPath)
            .getQueryParams(map)
            .encode(); 

任何反馈都将不胜感激。谢谢大家!

对于
BigDecimal
Boollean
,您可以尝试使用
toString()
valueOf()
方法

public String createUriString(){
    String basePath="http://example.com";
    String apiPath="api";
    String name="example_name";
    String channel="example_channel";
    BigDecimal code = BigDecimal.valueOf(100500);
    boolean isCreated= true;
    MultiValueMap<String,String> params = new LinkedMultiValueMap<>();
    params.set("name",name);
    params.set("channel",channel);
    params.set("code",code.toString());
    params.set("isCreated",String.valueOf(isCreated));
    UriComponents uriComponents = UriComponentsBuilder
        .fromHttpUrl(basePath)
        .path(apiPath)
        .queryParams(params)
            .build();
    return uriComponents.toUriString();
}
此代码的结果与前面的示例类似

另外,我找不到getQueryParams(map)方法。我们可能有不同版本的Spring Boot

public String createUriString(){
    String basePath="http://example.com";
    String apiPath="api";
    String name="example_name";
    String channel="example_channel";
    BigDecimal code = BigDecimal.valueOf(100500);
    boolean isCreated= true;
    UriComponents uriComponents = UriComponentsBuilder
            .fromHttpUrl(basePath)
            .path(apiPath)
            .queryParam("name",name)
            .queryParam("channel", channel)
            .queryParam("code", code)
            .queryParam("isCreated", isCreated)
            .build();
    return uriComponents.toUriString();
}