Interface WebClient.RequestHeadersSpec<S extends WebClient.RequestHeadersSpec<S>>
- Type Parameters:
S- a self reference to the spec type
- All Known Subinterfaces:
WebClient.RequestBodySpec,WebClient.RequestBodyUriSpec,WebClient.RequestHeadersUriSpec<S>
- Enclosing interface:
- WebClient
public static interface WebClient.RequestHeadersSpec<S extends WebClient.RequestHeadersSpec<S>>
Contract for specifying request headers leading up to the exchange.
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Saccept(MediaType... acceptableMediaTypes)Set the list of acceptable media types, as specified by theAcceptheader.SacceptCharset(Charset... acceptableCharsets)Set the list of acceptable charsets, as specified by theAccept-Charsetheader.Sattribute(String name, Object value)Set the attribute with the given name to the given value.Sattributes(Consumer<Map<String,Object>> attributesConsumer)Provides access to every attribute declared so far with the possibility to add, replace, or remove values.Scookie(String name, String value)Add a cookie with the given name and value.Scookies(Consumer<MultiValueMap<String,String>> cookiesConsumer)Provides access to every cookie declared so far with the possibility to add, replace, or remove values.reactor.core.publisher.Mono<ClientResponse>exchange()Perform the HTTP request and return aClientResponsewith the response status and headers.Sheader(String headerName, String... headerValues)Add the given, single header value under the given name.Sheaders(Consumer<HttpHeaders> headersConsumer)Provides access to every header declared so far with the possibility to add, replace, or remove values.SifModifiedSince(ZonedDateTime ifModifiedSince)Set the value of theIf-Modified-Sinceheader.SifNoneMatch(String... ifNoneMatches)Set the values of theIf-None-Matchheader.WebClient.ResponseSpecretrieve()Perform the HTTP request and retrieve the response body:
Method Detail
accept
S accept(MediaType... acceptableMediaTypes)
Set the list of acceptable media types, as specified by theAcceptheader.- Parameters:
acceptableMediaTypes- the acceptable media types- Returns:
- this builder
acceptCharset
S acceptCharset(Charset... acceptableCharsets)
Set the list of acceptable charsets, as specified by theAccept-Charsetheader.- Parameters:
acceptableCharsets- the acceptable charsets- Returns:
- this builder
cookie
S cookie(String name, String value)
Add a cookie with the given name and value.- Parameters:
name- the cookie namevalue- the cookie value- Returns:
- this builder
cookies
S cookies(Consumer<MultiValueMap<String,String>> cookiesConsumer)
Provides access to every cookie declared so far with the possibility to add, replace, or remove values.- Parameters:
cookiesConsumer- the consumer to provide access to- Returns:
- this builder
ifModifiedSince
S ifModifiedSince(ZonedDateTime ifModifiedSince)
Set the value of theIf-Modified-Sinceheader.The date should be specified as the number of milliseconds since January 1, 1970 GMT.
- Parameters:
ifModifiedSince- the new value of the header- Returns:
- this builder
ifNoneMatch
S ifNoneMatch(String... ifNoneMatches)
Set the values of theIf-None-Matchheader.- Parameters:
ifNoneMatches- the new value of the header- Returns:
- this builder
header
S header(String headerName, String... headerValues)
Add the given, single header value under the given name.- Parameters:
headerName- the header nameheaderValues- the header value(s)- Returns:
- this builder
headers
S headers(Consumer<HttpHeaders> headersConsumer)
Provides access to every header declared so far with the possibility to add, replace, or remove values.- Parameters:
headersConsumer- the consumer to provide access to- Returns:
- this builder
attribute
S attribute(String name, Object value)
Set the attribute with the given name to the given value.- Parameters:
name- the name of the attribute to addvalue- the value of the attribute to add- Returns:
- this builder
attributes
S attributes(Consumer<Map<String,Object>> attributesConsumer)
Provides access to every attribute declared so far with the possibility to add, replace, or remove values.- Parameters:
attributesConsumer- the consumer to provide access to- Returns:
- this builder
retrieve
WebClient.ResponseSpec retrieve()
Perform the HTTP request and retrieve the response body:Mono<Person> bodyMono = client.get() .uri("/persons/1") .accept(MediaType.APPLICATION_JSON) .retrieve() .bodyToMono(Person.class);This method is a shortcut to using
exchange()and decoding the response body throughClientResponse.- Returns:
ResponseSpecto specify how to decode the body- See Also:
exchange()
exchange
reactor.core.publisher.Mono<ClientResponse> exchange()
Perform the HTTP request and return aClientResponsewith the response status and headers. You can then use methods of the response to consume the body:Mono<Person> mono = client.get() .uri("/persons/1") .accept(MediaType.APPLICATION_JSON) .exchange() .flatMap(response -> response.bodyToMono(Person.class)); Flux<Person> flux = client.get() .uri("/persons") .accept(MediaType.APPLICATION_STREAM_JSON) .exchange() .flatMapMany(response -> response.bodyToFlux(Person.class));NOTE: Unlike
retrieve(), when usingexchange(), it is the responsibility of the application to consume any response content regardless of the scenario (success, error, unexpected data, etc). Not doing so can cause a memory leak. SeeClientResponsefor a list of all the available options for consuming the body. Generally prefer usingretrieve()unless you have a good reason to useexchange()which does allow to check the response status and headers before deciding how or if to consume the response.- Returns:
- a
Monofor the response - See Also:
retrieve()