如何使用 RestTemplate 发送带有路径变量和查询参数的获取请求?
How do I send a get request with path variables and query parameters using RestTemplate?
我正在尝试发送以下请求,但我收到一条消息说我有一个“不明确的 URI 路径编码”。
这是获取请求:
ResponseEntity<CarDetail> carDetails = restTemplate.exchange(
builder.toUriString(),
HttpMethod.GET,
requestEntity,
CarDetail.class,
carId, ownerId);
builder是这样的:
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url)
.queryParam("from", "2019-04-12T10:15:51.000Z")
.queryParam("to", "2019-04-14T10:15:51.000Z");
和url是这样的:
http://cars.com/car/{carId}/owner/{ownerId}/period
我一直在试图找出问题所在,但无法弄清楚,任何帮助将不胜感激。
更新:
builder.toUriString()
返回这个:
http://cars.com/car/%7BcarId%7D/owner/%7BownerId%7D/period?from=2019-04-12T10:15:51.000Z&to=2019-04-14T10:15:51.000Z
我认为问题出在 %7B
上。有什么建议吗?
我使用 builder.buildAndExpand(carVariable).toUri()
解决了这个问题
解决方案如下所示:
ResponseEntity<CarDetail> carDetails = restTemplate.exchange(
builder.buildAndExpand(carVariable).toUri(),
HttpMethod.GET,
requestEntity,
CarDetail.class);
我正在尝试发送以下请求,但我收到一条消息说我有一个“不明确的 URI 路径编码”。
这是获取请求:
ResponseEntity<CarDetail> carDetails = restTemplate.exchange(
builder.toUriString(),
HttpMethod.GET,
requestEntity,
CarDetail.class,
carId, ownerId);
builder是这样的:
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url)
.queryParam("from", "2019-04-12T10:15:51.000Z")
.queryParam("to", "2019-04-14T10:15:51.000Z");
和url是这样的:
http://cars.com/car/{carId}/owner/{ownerId}/period
我一直在试图找出问题所在,但无法弄清楚,任何帮助将不胜感激。
更新:
builder.toUriString()
返回这个:
http://cars.com/car/%7BcarId%7D/owner/%7BownerId%7D/period?from=2019-04-12T10:15:51.000Z&to=2019-04-14T10:15:51.000Z
我认为问题出在 %7B
上。有什么建议吗?
我使用 builder.buildAndExpand(carVariable).toUri()
解决方案如下所示:
ResponseEntity<CarDetail> carDetails = restTemplate.exchange(
builder.buildAndExpand(carVariable).toUri(),
HttpMethod.GET,
requestEntity,
CarDetail.class);