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() ); } } }