private void addQueryParams(HttpRequest.Builder requestBuilder, Map<String, ?> queryParams) { for (Entry<String, ?> queryParamEntry : queryParams.entrySet()) { if (queryParamEntry.getValue() instanceof String) { requestBuilder.setQueryParam(queryParamEntry.getKey()).to((String) queryParamEntry.getValue()); } else if (queryParamEntry.getValue() instanceof Integer) { requestBuilder.setQueryParam(queryParamEntry.getKey()).to((Integer) queryParamEntry.getValue()); } else if (queryParamEntry.getValue() instanceof Long) { requestBuilder.setQueryParam(queryParamEntry.getKey()).to((Long) queryParamEntry.getValue()); } else if (queryParamEntry.getValue() instanceof Boolean) { requestBuilder.setQueryParam(queryParamEntry.getKey()).to((Boolean) queryParamEntry.getValue()); } else { throw new RuntimeException(String.format("The type '%s' of query param %s is not supported. Only String, long, int and boolean values are supported", queryParamEntry.getValue().getClass().getName(), queryParamEntry.getKey())); } } }
private HttpRequest.Builder buildRequest(String uri, Map<String, String> queryParams) { final HttpRequest.Builder builder = HttpRequest.newBuilder().setUrl(uri); final Optional<String> maybeAuthkey = authkeyProvider.get(); if (maybeAuthkey.isPresent()) { builder.setQueryParam("authkey").to(maybeAuthkey.get()); } if ((queryParams != null) && (!queryParams.isEmpty())) { for (Map.Entry<String, String> entry : queryParams.entrySet()) { builder.setQueryParam(entry.getKey()).to(entry.getValue()); } } return builder; }
private <T extends SlackResponse> CompletableFuture<Result<T, SlackError>> postSlackCommandUrlEncoded( SlackMethod method, Multimap<String, String> params, Class<T> responseType ) { HttpRequest.Builder requestBuilder = buildBaseSlackPost(method) .setContentType(ContentType.FORM); params.entries() .forEach(param -> requestBuilder.setFormParam(param.getKey()).to(param.getValue())); requestBuilder.setQueryParam("token").to(config.getTokenSupplier().get()); return executeLoggedAs(method, requestBuilder.build(), responseType); }