package com.baeldung; import org.springframework.http.HttpHeaders; import org.springframework.http.client.ClientHttpRequest; import org.springframework.web.client.RequestCallback; import java.io.IOException; import java.util.Map; public class HeaderSettingRequestCallback implements RequestCallback { final Map requestHeaders; private String body; public HeaderSettingRequestCallback(final Map headers) { this.requestHeaders = headers; } public void setBody(final String postBody) { this.body = postBody; } @Override public void doWithRequest(ClientHttpRequest request) throws IOException { final HttpHeaders clientHeaders = request.getHeaders(); for (final Map.Entry entry : requestHeaders.entrySet()) { clientHeaders.add(entry.getKey(), entry.getValue()); } if (null != body) { request.getBody().write(body.getBytes()); } } }