/** * Create a new {@code WebClient} with Reactor Netty by default. * @see #create(String) * @see #builder() */ static WebClient create() { return new DefaultWebClientBuilder().build(); }
@Override public WebClient.Builder defaultCookies(Consumer<MultiValueMap<String, String>> cookiesConsumer) { cookiesConsumer.accept(initCookies()); return this; }
@Override public WebClient.Builder filters(Consumer<List<ExchangeFilterFunction>> filtersConsumer) { filtersConsumer.accept(initFilters()); return this; }
@Override public WebClient build() { ExchangeFunction exchange = initExchangeFunction(); ExchangeFunction filteredExchange = (this.filters != null ? this.filters.stream() .reduce(ExchangeFilterFunction::andThen) .map(filter -> filter.apply(exchange)) .orElse(exchange) : exchange); return new DefaultWebClient(filteredExchange, initUriBuilderFactory(), this.defaultHeaders != null ? unmodifiableCopy(this.defaultHeaders) : null, this.defaultCookies != null ? unmodifiableCopy(this.defaultCookies) : null, this.defaultRequest, new DefaultWebClientBuilder(this)); }
@Override public Builder mutate() { return new DefaultWebClientBuilder(this.builder); }
/** * Variant of {@link #create()} that accepts a default base URL. For more * details see {@link Builder#baseUrl(String) Builder.baseUrl(String)}. * @param baseUrl the base URI for all requests * @see #builder() */ static WebClient create(String baseUrl) { return new DefaultWebClientBuilder().baseUrl(baseUrl).build(); }
@Override public WebClient.Builder defaultHeaders(Consumer<HttpHeaders> headersConsumer) { headersConsumer.accept(initHeaders()); return this; }
/** * Obtain a {@code WebClient} builder. */ static WebClient.Builder builder() { return new DefaultWebClientBuilder(); }
@Override public WebClient.Builder defaultHeader(String header, String... values) { initHeaders().put(header, Arrays.asList(values)); return this; }
@Override public WebClient.Builder clone() { return new DefaultWebClientBuilder(this); }
@Override public WebClient.Builder filter(ExchangeFilterFunction filter) { Assert.notNull(filter, "ExchangeFilterFunction must not be null"); initFilters().add(filter); return this; }
@Override public WebClient.Builder defaultCookie(String cookie, String... values) { initCookies().addAll(cookie, Arrays.asList(values)); return this; }
/** * Return a builder for a {@code WebClient}. * @param connector the connector to create connections * @return a web client builder */ static Builder builder(ClientHttpConnector connector) { Assert.notNull(connector, "'connector' must not be null"); return new DefaultWebClientBuilder(connector); }