private void buildHeaders(RequestBuilder requestBuilder, String xsrfToken, RestAction<?> action) throws ActionException { String path = action.getPath(); List<RestParameter> actionParams = action.getHeaderParams(); Collection<RestParameter> applicableGlobalParams = globalHeaderParams.get(action.getHttpMethod()); // By setting the most generic headers first, we make sure they can be overridden by more // specific ones requestBuilder.setHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON); requestBuilder.setHeader(HttpHeaders.CONTENT_TYPE, JSON_UTF8); if (!isAbsoluteUrl(path)) { requestBuilder.setHeader(MODULE_BASE_HEADER, baseUrl); } if (!Strings.isNullOrEmpty(xsrfToken)) { requestBuilder.setHeader(securityHeaderName, xsrfToken); } for (RestParameter parameter : applicableGlobalParams) { String value = parameter.getStringValue(); if (value != null) { requestBuilder.setHeader(parameter.getName(), value); } } for (RestParameter param : actionParams) { requestBuilder.setHeader(param.getName(), param.getStringValue()); } }
private String buildPath(String rawPath, List<RestParameter> params) throws ActionException { String path = rawPath; for (RestParameter param : params) { String encodedParam = encodePathParam(param.getStringValue()); path = path.replace("{" + param.getName() + "}", encodedParam); } return path; }
private List<RestParameter> getGlobalQueryParamsForAction(RestAction<?> action) { List<RestParameter> queryParams = Lists.newArrayList(); for (RestParameter parameter : globalQueryParams.get(action.getHttpMethod())) { String value = parameter.getStringValue(); if (value != null) { queryParams.add(new RestParameter(parameter.getName(), value)); } } return queryParams; }
private String buildQueryString(List<RestParameter> params) throws ActionException { StringBuilder queryString = new StringBuilder(); for (RestParameter param : params) { queryString .append("&") .append(param.getName()) .append("=") .append(encodeQueryParam(param.getStringValue())); } if (queryString.length() != 0) { queryString.deleteCharAt(0); } return queryString.toString(); }