@Override public R acceptCharset(Charset... charsets) { String[] values = null; if (charsets != null) { values = new String[charsets.length]; for (int i = 0; i < charsets.length; i++) { values[i] = charsets[i].name(); } } return acceptCharset(values); }
@Override public R acceptLanguage(Locale... locales) { String[] values = null; if (locales != null) { values = new String[locales.length]; for (int i = 0; i < locales.length; i++) { values[i] = locales[i].toLanguageTag(); } } return acceptLanguage(values); }
@Override public R acceptLanguage(String... locales) { if (locales != null) { header(HttpHeaders.ACCEPT_LANGUAGE, locales); } return getActualDefinition(); }
@Override public R resolve(Map<String, Object> nameAndValues) { if (nameAndValues != null) { for (Entry<String, Object> entry : nameAndValues.entrySet()) { resolve(entry.getKey(), entry.getValue()); } } return getActualDefinition(); }
@Override public R queryParameter(String name, Object... values) { ObjectUtils.argumentNotNull(name, "Query parameter name must be not null"); Object[] v = (values != null) ? values : new Object[0]; queryParameters.put(name, v); return getActualDefinition(); }
@Override public String getRequestURI() { StringBuilder sb = new StringBuilder(); sb.append(getBaseRequestURI().orElseThrow(() -> new HttpClientInvocationException("Missing target base URI")) .toString()); sb.append(getRequestPath().map(p -> (sb.toString().endsWith("/") && p.startsWith("/")) ? p.substring(1) : p) .orElse("")); return sb.toString(); }
@Override public R authorizationBearer(String bearerToken) { ObjectUtils.argumentNotNull(bearerToken, "Authorization bearer token must be not null"); return header(HttpHeaders.AUTHORIZATION, HttpHeaders.SCHEME_BEARER + " " + bearerToken); }
@Override public R accept(MediaType... mediaTypes) { String[] values = null; if (mediaTypes != null) { values = new String[mediaTypes.length]; for (int i = 0; i < mediaTypes.length; i++) { values[i] = mediaTypes[i].toString(); } } return accept(values); }
@Override public R path(String path) { ObjectUtils.argumentNotNull(path, "Request path must be not null"); requestPaths.add(path); return getActualDefinition(); }
@Override public R authorizationBasic(String username, String password) { ObjectUtils.argumentNotNull(username, "Username must be not null"); ObjectUtils.argumentNotNull(password, "Password must be not null"); try { return header(HttpHeaders.AUTHORIZATION, HttpHeaders.SCHEME_BASIC + " " + Base64.getEncoder() .encodeToString(new String((username + ":" + password)).getBytes("ISO-8859-1"))); } catch (UnsupportedEncodingException e) { throw new HttpClientInvocationException(e); } }
@Override public R acceptEncoding(String... encodings) { if (encodings != null) { header(HttpHeaders.ACCEPT_ENCODING, encodings); } return getActualDefinition(); }
@SuppressWarnings("rawtypes") @Override public <P extends Property> R propertySet(Iterable<P> properties) { this.propertySet = PropertySet.of(properties); return getActualDefinition(); }
@Override public R acceptCharset(String... charsets) { if (charsets != null) { header(HttpHeaders.ACCEPT_CHARSET, charsets); } return getActualDefinition(); }
@Override public R target(URI baseUri) { ObjectUtils.argumentNotNull(baseUri, "Base URI target must be not null"); this.baseRequestURI = baseUri; return getActualDefinition(); }
@Override public R accept(String... mediaTypes) { if (mediaTypes != null) { header(HttpHeaders.ACCEPT, mediaTypes); } return getActualDefinition(); }
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override public <P extends Property> R propertySet(P... properties) { this.propertySet = PropertySet.of(properties); return getActualDefinition(); }
@Override public R cacheControl(CacheControl cacheControl) { ObjectUtils.argumentNotNull(cacheControl, "CacheControl must be not null"); cacheControl.asHeader().ifPresent(c -> header(HttpHeaders.CACHE_CONTROL, c)); return getActualDefinition(); }
@Override public R header(String name, String... values) { ObjectUtils.argumentNotNull(name, "Header name must be not null"); StringBuilder sb = new StringBuilder(); if (values != null) { for (int i = 0; i < values.length; i++) { if (i > 0) { sb.append(", "); } sb.append(values[i]); } } headers.put(name, sb.toString()); return getActualDefinition(); }
@Override public R resolve(String name, Object value) { ObjectUtils.argumentNotNull(name, "Template variable name must be not null"); ObjectUtils.argumentNotNull(value, "Template variable value must be not null"); templateParameters.put(name, value); return getActualDefinition(); }