首页 > 解决方案 > 如何从使用 Object...uriVariables 的 RestTemplate 对象获取生成的 URL 信息

问题描述

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

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

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

标签: spring-booturlresttemplatestring-interpolation

解决方案


     String url = UriComponentsBuilder
                .fromHttpUrl(http://localhost:8080/get)
                .queryParam("var1", <value of var1>)
                .queryParam("var2", <value of var2>);
                .toUriString()

然后将此网址与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);

推荐阅读