@Override public void initialize(HttpRequest httpRequest) throws IOException { if (delegate != null) { delegate.initialize(httpRequest); } if (connectTimeout >= 0) { httpRequest.setConnectTimeout(connectTimeout); } if (readTimeout >= 0) { httpRequest.setReadTimeout(readTimeout); } HttpHeadersUtils.setHeaders(httpRequest.getHeaders(), headerProvider.getHeaders()); } };
@Override public void enhance(HttpHeaders headers) { HttpHeadersUtils.setHeader(headers, key, value); } };
public static HttpHeaders setHeader(HttpHeaders headers, String key, String value) { ClassInfo classInfo = headers.getClassInfo(); FieldInfo fieldInfo = classInfo.getFieldInfo(key); Object headerValue; if (fieldInfo == null) { headerValue = value; } else { Class<?> elementyType = fieldInfo.getType(); if (List.class.isAssignableFrom(fieldInfo.getType())) { elementyType = "Age".equalsIgnoreCase(key) || "Content-Length".equalsIgnoreCase(key) ? Long.class : String.class; } headerValue = ImmutableList.of(fromString(elementyType, value)); } headers.set(key, headerValue); return headers; }
@Test public void testGetUserAgentValue() { Map<String, String> headersMap = ImmutableMap.of( "Custom-Header", "CustomHeader", "User-Agent", "this is me", "accept", "Accept"); assertEquals("this is me", HttpHeadersUtils.getUserAgentValue(headersMap)); headersMap = ImmutableMap.of("Custom-Header", "CustomHeader", "accept", "Accept"); assertNull(HttpHeadersUtils.getUserAgentValue(headersMap)); } }
@Override public void enhance(HttpHeaders headers) { HttpHeadersUtils.setHeader(headers, key, value); } };
public static HttpHeaders setHeader(HttpHeaders headers, String key, String value) { ClassInfo classInfo = headers.getClassInfo(); FieldInfo fieldInfo = classInfo.getFieldInfo(key); Object headerValue; if (fieldInfo == null) { headerValue = value; } else { Class<?> elementyType = fieldInfo.getType(); if (List.class.isAssignableFrom(fieldInfo.getType())) { elementyType = "Age".equalsIgnoreCase(key) || "Content-Length".equalsIgnoreCase(key) ? Long.class : String.class; } headerValue = ImmutableList.of(fromString(elementyType, value)); } headers.set(key, headerValue); return headers; }
public static HttpHeaders setHeaders(HttpHeaders headers, Map<String, String> headersMap) { for (Map.Entry<String, String> entry : headersMap.entrySet()) { setHeader(headers, entry.getKey(), entry.getValue()); } return headers; }
@Override public void initialize(HttpRequest httpRequest) throws IOException { if (delegate != null) { delegate.initialize(httpRequest); } if (connectTimeout >= 0) { httpRequest.setConnectTimeout(connectTimeout); } if (readTimeout >= 0) { httpRequest.setReadTimeout(readTimeout); } HttpHeadersUtils.setHeaders(httpRequest.getHeaders(), headerProvider.getHeaders()); } };
public static HttpHeaders setHeaders(HttpHeaders headers, Map<String, String> headersMap) { for (Map.Entry<String, String> entry : headersMap.entrySet()) { setHeader(headers, entry.getKey(), entry.getValue()); } return headers; }
@Test public void testSetHeaders() { HttpHeaders headers = new HttpHeaders(); Map<String, String> headersMap = ImmutableMap.of( "Custom-Header", "CustomHeader", "accept", "Accept", "Content-Length", "123"); assertEquals(headers, HttpHeadersUtils.setHeaders(headers, headersMap)); assertEquals("CustomHeader", headers.get("Custom-Header")); assertEquals("Accept", headers.getAccept()); assertEquals(Long.valueOf(123L), headers.getContentLength()); }
assertEquals(headers, HttpHeadersUtils.setHeader(headers, "Custom-Header", "CustomHeader")); HttpHeadersUtils.setHeader(headers, "accept", "Accept"); HttpHeadersUtils.setHeader(headers, "accept-encoding", "AcceptEncoding"); HttpHeadersUtils.setHeader(headers, "Authorization", "Authorization"); HttpHeadersUtils.setHeader(headers, "cache-Control", "CacheControl"); HttpHeadersUtils.setHeader(headers, "Content-Encoding", "ContentEncoding"); HttpHeadersUtils.setHeader(headers, "Content-Length", "123"); HttpHeadersUtils.setHeader(headers, "Content-MD5", "ContentMD5"); HttpHeadersUtils.setHeader(headers, "Content-Range", "ContentRange"); HttpHeadersUtils.setHeader(headers, "Content-Type", "ContentType"); HttpHeadersUtils.setHeader(headers, "Cookie", "Cookie"); HttpHeadersUtils.setHeader(headers, "Date", "Date"); HttpHeadersUtils.setHeader(headers, "ETag", "ETag"); HttpHeadersUtils.setHeader(headers, "Expires", "Expires"); HttpHeadersUtils.setHeader(headers, "If-Modified-Since", "IfModifiedSince"); HttpHeadersUtils.setHeader(headers, "If-Match", "IfMatch"); HttpHeadersUtils.setHeader(headers, "If-None-Match", "IfNoneMatch"); HttpHeadersUtils.setHeader(headers, "If-Unmodified-Since", "IfUnmodifiedSince"); HttpHeadersUtils.setHeader(headers, "If-Range", "IfRange"); HttpHeadersUtils.setHeader(headers, "Last-Modified", "LastModified"); HttpHeadersUtils.setHeader(headers, "Location", "Location"); HttpHeadersUtils.setHeader(headers, "Mime-Version", "MimeVersion"); HttpHeadersUtils.setHeader(headers, "Range", "Range"); HttpHeadersUtils.setHeader(headers, "Retry-After", "RetryAfter"); HttpHeadersUtils.setHeader(headers, "User-Agent", "UserAgent"); HttpHeadersUtils.setHeader(headers, "WWW-Authenticate", "Authenticate"); HttpHeadersUtils.setHeader(headers, "Age", "456");