Java 如何在Spring Boot中将RestTemplate与非字符串查询参数一起使用?
我在一个Spring启动项目中使用RestTemplate,我有4个查询参数,其中2个是String,一个是BigDecimal,一个是boolean:String name,String channel,BigDecimal code,boolean isCreated。我想问您如何发送这个非字符串查询参数,因为我看到getQueryParams()需要一个映射 我正在使用这种实现: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
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();
}