Java 如何在没有uri的rest模板中向url传递查询

Java 如何在没有uri的rest模板中向url传递查询,java,spring,rest,url,resttemplate,Java,Spring,Rest,Url,Resttemplate,我正在尝试对url进行GET调用,需要传入查询以获得所需的响应。 我正在使用spring框架和Rest模板进行调用。 我知道我可以手动执行此操作: Uritemplate(url+name={name}... 但这是一种痛苦。我需要一个更简单的方法,哈希映射将动态生成 那么,如何在不使用uri编码器的情况下将映射传递到url呢? String url=“example.com/search Map params=新的HashMap(); 参数put(“名称”、“约翰”); 参数put(“位置

我正在尝试对url进行GET调用,需要传入查询以获得所需的响应。 我正在使用spring框架和Rest模板进行调用。 我知道我可以手动执行此操作:

Uritemplate(url+name={name}...
但这是一种痛苦。我需要一个更简单的方法,哈希映射将动态生成

那么,如何在不使用uri编码器的情况下将映射传递到url呢?

String url=“example.com/search
Map params=新的HashMap();
参数put(“名称”、“约翰”);
参数put(“位置”、“非洲”);
公共静态响应属性callGetService(字符串url,映射参数){
RestTemplate rest=新建RestTemplate();
添加(新的MappingJackson2HttpMessageConverter());
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity reqentity=新的HttpEntity(标题);
ResponseEntity resp=rest.exchange(url、HttpMethod.GET、reqentity、String.class);
系统输出打印项次(resp);
返回响应;
}
所以url将以如下示例结束。com/search?name=john&location=africa

回答:{name:john doe,love:football}--大量json数据

您可以使用
UriComponentsBuilder
UriComponents
,这有助于创建URI

String url = "http://example.com/search";
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
params.add("name", "john");
params.add("location", "africa");

UriComponents uriComponents = UriComponentsBuilder.fromHttpUrl(url).queryParams(params).build();
System.out.println(uriComponents.toUri());
如果需要为路径段使用URI变量,还有其他选项

请注意,如果发送HTTP请求,则需要有效的URL。HTTP规范中解释了HTTP URL架构。
UriComponentsBuilder
提供了构建URL所有部分的方法。

答案有问题吗?为什么要否决?遗憾的是,方法queryParams在spring-web-3.2.4中还不存在
String url = "http://example.com/search";
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
params.add("name", "john");
params.add("location", "africa");

UriComponents uriComponents = UriComponentsBuilder.fromHttpUrl(url).queryParams(params).build();
System.out.println(uriComponents.toUri());
http://example.com/search?name=john&location=africa