/** * Add all headers from the provided varargs argument to a {@link Request}. This only exists * to support methods that exist for backwards compatibility. */ @Deprecated private static void setOptions(Request request, HttpAsyncResponseConsumerFactory httpAsyncResponseConsumerFactory, Header... headers) { Objects.requireNonNull(headers, "headers cannot be null"); RequestOptions.Builder options = request.getOptions().toBuilder(); for (Header header : headers) { Objects.requireNonNull(header, "header cannot be null"); options.addHeader(header.getName(), header.getValue()); } options.setHttpAsyncResponseConsumerFactory(httpAsyncResponseConsumerFactory); request.setOptions(options); }
RequestOptions.Builder options = request.getOptions().toBuilder(); options.addHeader("Authorization", "Basic " + encodedCredentials); request.setOptions(options);
/** * Defines a helper method for requests that can 404 and in which case will return an empty Optional * otherwise tries to parse the response body */ protected final <Req extends Validatable, Resp> Optional<Resp> performRequestAndParseOptionalEntity(Req request, CheckedFunction<Req, Request, IOException> requestConverter, RequestOptions options, CheckedFunction<XContentParser, Resp, IOException> entityParser ) throws IOException { Optional<ValidationException> validationException = request.validate(); if (validationException != null && validationException.isPresent()) { throw validationException.get(); } Request req = requestConverter.apply(request); req.setOptions(options); Response response; try { response = client.performRequest(req); } catch (ResponseException e) { if (RestStatus.NOT_FOUND.getStatus() == e.getResponse().getStatusLine().getStatusCode()) { return Optional.empty(); } throw parseResponseException(e); } try { return Optional.of(parseEntity(response.getEntity(), entityParser)); } catch (Exception e) { throw new IOException("Unable to parse response body for " + response, e); } }
/** * Provides common functionality for asynchronously performing a request. */ private <Req, Resp> void internalPerformRequestAsync(Req request, CheckedFunction<Req, Request, IOException> requestConverter, RequestOptions options, CheckedFunction<Response, Resp, IOException> responseConverter, ActionListener<Resp> listener, Set<Integer> ignores) { Request req; try { req = requestConverter.apply(request); } catch (Exception e) { listener.onFailure(e); return; } req.setOptions(options); ResponseListener responseListener = wrapResponseListener(responseConverter, listener, ignores); client.performRequestAsync(req, responseListener); }
/** * Asynchronous request which returns empty {@link Optional}s in the case of 404s or parses entity into an Optional */ protected final <Req extends Validatable, Resp> void performRequestAsyncAndParseOptionalEntity(Req request, CheckedFunction<Req, Request, IOException> requestConverter, RequestOptions options, CheckedFunction<XContentParser, Resp, IOException> entityParser, ActionListener<Optional<Resp>> listener) { Optional<ValidationException> validationException = request.validate(); if (validationException != null && validationException.isPresent()) { listener.onFailure(validationException.get()); return; } Request req; try { req = requestConverter.apply(request); } catch (Exception e) { listener.onFailure(e); return; } req.setOptions(options); ResponseListener responseListener = wrapResponseListener404sOptional(response -> parseEntity(response.getEntity(), entityParser), listener); client.performRequestAsync(req, responseListener); }
Set<Integer> ignores) throws IOException { Request req = requestConverter.apply(request); req.setOptions(options); Response response; try {