2016-07-27 13:19:46 +03:00
|
|
|
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;
|
|
|
|
|
2016-08-02 12:34:08 +03:00
|
|
|
public class HeaderSettingRequestCallback implements RequestCallback {
|
|
|
|
final Map<String, String> requestHeaders;
|
2016-07-27 13:19:46 +03:00
|
|
|
|
|
|
|
private String body;
|
|
|
|
|
2016-08-02 12:34:08 +03:00
|
|
|
public HeaderSettingRequestCallback(final Map<String, String> headers) {
|
2016-07-27 13:19:46 +03:00
|
|
|
this.requestHeaders = headers;
|
|
|
|
}
|
|
|
|
|
2016-08-02 12:34:08 +03:00
|
|
|
public void setBody(final String postBody) {
|
2016-07-27 13:19:46 +03:00
|
|
|
this.body = postBody;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2016-08-02 12:34:08 +03:00
|
|
|
public void doWithRequest(ClientHttpRequest request) throws IOException {
|
2016-07-27 13:19:46 +03:00
|
|
|
final HttpHeaders clientHeaders = request.getHeaders();
|
2016-08-02 12:34:08 +03:00
|
|
|
for (final Map.Entry<String, String> entry : requestHeaders.entrySet()) {
|
|
|
|
clientHeaders.add(entry.getKey(), entry.getValue());
|
2016-07-27 13:19:46 +03:00
|
|
|
}
|
2016-08-02 12:34:08 +03:00
|
|
|
if (null != body) {
|
|
|
|
request.getBody().write(body.getBytes());
|
2016-07-27 13:19:46 +03:00
|
|
|
}
|
|
|
|
}
|
2016-07-26 09:43:09 -05:00
|
|
|
}
|