Allow interceptors to add existing header values
Additional commit to provide support of requests that have a body. Issue: SPR-15066
This commit is contained in:
@@ -922,6 +922,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
|
||||
Class<?> requestBodyClass = requestBody.getClass();
|
||||
Type requestBodyType = (this.requestEntity instanceof RequestEntity ?
|
||||
((RequestEntity<?>)this.requestEntity).getType() : requestBodyClass);
|
||||
HttpHeaders httpHeaders = httpRequest.getHeaders();
|
||||
HttpHeaders requestHeaders = this.requestEntity.getHeaders();
|
||||
MediaType requestContentType = requestHeaders.getContentType();
|
||||
for (HttpMessageConverter<?> messageConverter : getMessageConverters()) {
|
||||
@@ -930,7 +931,9 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
|
||||
(GenericHttpMessageConverter<Object>) messageConverter;
|
||||
if (genericConverter.canWrite(requestBodyType, requestBodyClass, requestContentType)) {
|
||||
if (!requestHeaders.isEmpty()) {
|
||||
httpRequest.getHeaders().putAll(requestHeaders);
|
||||
for (Map.Entry<String, List<String>> entry : requestHeaders.entrySet()) {
|
||||
httpHeaders.put(entry.getKey(), new LinkedList<>(entry.getValue()));
|
||||
}
|
||||
}
|
||||
if (logger.isDebugEnabled()) {
|
||||
if (requestContentType != null) {
|
||||
@@ -948,7 +951,9 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
|
||||
}
|
||||
else if (messageConverter.canWrite(requestBodyClass, requestContentType)) {
|
||||
if (!requestHeaders.isEmpty()) {
|
||||
httpRequest.getHeaders().putAll(requestHeaders);
|
||||
for (Map.Entry<String, List<String>> entry : requestHeaders.entrySet()) {
|
||||
httpHeaders.put(entry.getKey(), new LinkedList<>(entry.getValue()));
|
||||
}
|
||||
}
|
||||
if (logger.isDebugEnabled()) {
|
||||
if (requestContentType != null) {
|
||||
|
||||
Reference in New Issue
Block a user