【问题标题】:How to get generated URL info from RestTemplate Object that use Object... uriVariables [duplicate]如何从使用对象的 RestTemplate 对象获取生成的 URL 信息... uriVariables [重复]
【发布时间】:2025-12-23 03:45:12
【问题描述】:

字符串 url = "http://localhost:8080/get/{var1}?var2={var2}";

我正在使用 restTemplate.postForEntity(url, entity, String.class, 变量 1,变量 2); //其中var1,var2是uriVariables

现在我在尝试通过 restTemplate 进行点击时遇到了一些错误,我相信这可能是由于 uriVariables 的定位不正确。那么有没有办法获取由 restTemplate 对象生成的 URL 信息。这样我就可以检查 restTemplate 是否到达正确的端点。

【问题讨论】:

  • 您还在将 GET 请求与 POST 模板混为一谈?

标签: spring-boot url resttemplate string-interpolation


【解决方案1】:
     String url = UriComponentsBuilder
                .fromHttpUrl(http://localhost:8080/get)
                .queryParam("var1", <value of var1>)
                .queryParam("var2", <value of var2>);
                .toUriString()

然后将此 url 与 resttemplate 一起使用

  ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, null, String.class);

HttpStatus statusCode = responseEntity.getStatusCode();
System.out.println("status code - " + statusCode);
String userDetails = responseEntity.getBody();
System.out.println("response body - " + userDetails);
HttpHeaders responseHeaders = responseEntity.getHeaders();
System.out.println("response Headers - " + responseHeaders);

【讨论】: