【问题标题】:How do I send a get request with path variables and query parameters using RestTemplate?如何使用 RestTemplate 发送带有路径变量和查询参数的 get 请求?
【发布时间】:2021-09-25 22:58:59
【问题描述】:

我正在尝试发送以下请求,但收到一条消息,提示我有一个“模糊的 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");

网址是这样的:

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 上。有什么建议吗?

【问题讨论】:

    标签: java spring-boot get resttemplate


    【解决方案1】:

    我使用builder.buildAndExpand(carVariable).toUri()解决了这个问题

    解决方案如下:

    ResponseEntity<CarDetail> carDetails = restTemplate.exchange(
           builder.buildAndExpand(carVariable).toUri(),
           HttpMethod.GET,
           requestEntity,
           CarDetail.class);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-26
      • 2019-12-08
      • 1970-01-01
      • 1970-01-01
      • 2019-10-18
      • 2022-06-22
      • 2020-04-29
      相关资源
      最近更新 更多