Parameters RestTemplate使用请求参数获取请求

Parameters RestTemplate使用请求参数获取请求,parameters,get,request,rest-client,resttemplate,Parameters,Get,Request,Rest Client,Resttemplate,我必须调用REST Web服务,我计划使用RestTemplate。我查看了有关如何发出GET请求的示例,如下所示 String result = restTemplate.getForObject("http://example.com/hotels/{hotel}/bookings/{booking}", String.class,"42","21"); 在我的例子中,RESTful url如下所示。在这种情况下如何使用RestTemplate http://example.com/ho

我必须调用REST Web服务,我计划使用RestTemplate。我查看了有关如何发出GET请求的示例,如下所示

 String result = restTemplate.getForObject("http://example.com/hotels/{hotel}/bookings/{booking}", String.class,"42","21");
在我的例子中,RESTful url如下所示。在这种情况下如何使用RestTemplate

http://example.com/hotels?state=NY&country=USA

因此,我的问题是如何为GET请求发送请求参数?

占位符对任一类型的url都起相同的作用,只需执行以下操作即可

 String result = restTemplate.getForObject("http://example.com/hotels?state={state}&country={country}", String.class,"NY","USA");

或者更好的是,使用hashmap进行实名匹配-

当向RESTful服务器发出请求时,在许多情况下,它需要向服务器发送查询参数、请求正文(如果是
POST
PUT
请求方法)以及请求中的头

在这种情况下,可以使用构建URI字符串,如果需要,可以使用进行编码,并使用如下方式发送:

public ResponseEntity requestRestServerWithGetMethod()
{
HttpEntity实体=新的HttpEntity(requestHeaders);//requestHeaders属于HttpHeaders类型
UriComponentsBuilder=UriComponentsBuilder.FromUristing(rawValidUrl)//rawValidUrl=http://example.com/hotels
.queryParams(
(LinkedMultiValueMap)allRequestParams);//必须为所有查询参数生成allRequestParams
UriComponents UriComponents=builder.build().encode();//encode()是为了确保像{,}这样的字符被保留并且没有编码。如果不需要,请跳过。
ResponseEntity ResponseEntity=restTemplate.exchange(uriComponents.toUri(),HttpMethod.GET,
实体、字符串、类);
返回响应性;
}
public ResponseEntity requestRestServerWithPostMethod()
{
HttpEntity实体=新的HttpEntity(requestBody,requestHeaders);//requestBody为字符串类型,requestHeaders为HttpHeaders类型
UriComponentsBuilder=UriComponentsBuilder.FromUristing(rawValidUrl)//rawValidUrl=http://example.com/hotels
.queryParams(
(LinkedMultiValueMap)allRequestParams);//必须为所有查询参数生成allRequestParams
UriComponents UriComponents=builder.build().encode();//encode()是为了确保像{,}这样的字符被保留并且没有编码。如果不需要,请跳过。
ResponseEntity ResponseEntity=restemplate.exchange(uriComponents.toUri(),HttpMethod.POST,
实体、字符串、类);
返回响应性;
}