RestTemplate 与基本身份验证和交换方法之间的冲突

Collision between RestTemplate with basic authentication and exchange method

我正在使用 Spring 4.3 和 SpringBoot 1.5 创建一个必须调用外部 REST 服务的组件。此外部服务请求 HTTP 基本身份验证。

我发现 SpringBoot 提供了一个非常有用的构建器来设置 RestTemplate 属性,例如基本身份验证,RestTemplateBuilder

要调用外部 REST 服务,我必须使用方法 RestTemplate.exchange,因为 List<T> return 类型。

new RestTemplateBuilder().basicAuthorization(username, password)
                         .build()
                         .exchange("/some/path/with/variables",
                                   HttpMethod.GET,
                                   new HttpEntity<>(new HttpHeaders()),
                                   new ParameterizedTypeReference<List<Integer>>() {},
                                   some, params)

这里的问题是 exchange 方法的签名请求一个 HttpEntity 类型的对象,它基本上是 HttpHeaders.

的容器

问题是,作为输入参数传递给 exchange 方法的 HttpEntity 对象是否会使用 RestTemplateBuilder.basicAuthorization 方法?

非常感谢。

这两天做了一些实验。 HttpEntity 传递给 exchange 方法的实例 订阅与 RestTemplateBuilder 设置的基本身份验证相关的信息。两组headers合并为一组

拍得不错,Spring;)