Struct zng_task::http::ClientBuilder
source · pub struct ClientBuilder { /* private fields */ }
Expand description
Builder that can be used to create a Client
.
Use Client::builder
to start building.
§Examples
use zng_task::http::*;
let client = Client::builder().metrics(true).build();
Implementations§
source§impl ClientBuilder
impl ClientBuilder
sourcepub fn build_custom<F>(self, custom: F) -> Result<Client, Error>
pub fn build_custom<F>(self, custom: F) -> Result<Client, Error>
Build the client with more custom build calls in the inner builder.
sourcepub fn default_header(
self,
key: impl TryHeaderName,
value: impl TryHeaderValue,
) -> Result<Self, Error>
pub fn default_header( self, key: impl TryHeaderName, value: impl TryHeaderValue, ) -> Result<Self, Error>
Add a default header to be passed with every request.
Enable persistent cookie handling for all requests using this client using a shared cookie jar.
Set a cookie jar to use to accept, store, and supply cookies for incoming responses and outgoing requests.
Note that the default_client
already has a cookie jar.
sourcepub fn timeout(self, timeout: Duration) -> Self
pub fn timeout(self, timeout: Duration) -> Self
Specify a maximum amount of time that a complete request/response cycle is allowed to take before being aborted. This includes DNS resolution, connecting to the server, writing the request, and reading the response.
Note that this includes the response read operation, so if you get a response but don’t
read-it within this timeout you will get a TimedOut
IO error.
By default no timeout is used.
sourcepub fn connect_timeout(self, timeout: Duration) -> Self
pub fn connect_timeout(self, timeout: Duration) -> Self
Set a timeout for establishing connections to a host.
If not set, the default_client
default of 90 seconds will be used.
sourcepub fn low_speed_timeout(self, low_speed: u32, timeout: Duration) -> Self
pub fn low_speed_timeout(self, low_speed: u32, timeout: Duration) -> Self
Specify a maximum amount of time where transfer rate can go below a minimum speed limit.
The low_speed
limit is in bytes/s. No low-speed limit is configured by default.
sourcepub fn redirect_policy(self, policy: RedirectPolicy) -> Self
pub fn redirect_policy(self, policy: RedirectPolicy) -> Self
Set a policy for automatically following server redirects.
If enabled the “Referer” header will be set automatically too.
sourcepub fn auto_decompress(self, enabled: bool) -> Self
pub fn auto_decompress(self, enabled: bool) -> Self
Enable or disable automatic decompression of the response body.
If enabled the “Accept-Encoding” will also be set automatically, if it was not set using default_header
.
This is enabled by default.
sourcepub fn max_upload_speed(self, max: u64) -> Self
pub fn max_upload_speed(self, max: u64) -> Self
Set a maximum upload speed for the request body, in bytes per second.
sourcepub fn max_download_speed(self, max: u64) -> Self
pub fn max_download_speed(self, max: u64) -> Self
Set a maximum download speed for the response body, in bytes per second.
sourcepub fn metrics(self, enable: bool) -> Self
pub fn metrics(self, enable: bool) -> Self
Enable or disable metrics collecting.
When enabled you can get the information using the Response::metrics
method.
This is enabled by default.
sourcepub fn cache(self, cache: impl CacheDb) -> Self
pub fn cache(self, cache: impl CacheDb) -> Self
Sets the CacheDb
to use.
Caching is only enabled if there is a DB, no caching is done by default.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for ClientBuilder
impl !RefUnwindSafe for ClientBuilder
impl Send for ClientBuilder
impl Sync for ClientBuilder
impl Unpin for ClientBuilder
impl !UnwindSafe for ClientBuilder
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more