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 new() -> ClientBuilder
pub fn new() -> ClientBuilder
New default builder.
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<ClientBuilder, Error>
pub fn default_header( self, key: impl TryHeaderName, value: impl TryHeaderValue, ) -> Result<ClientBuilder, 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) -> ClientBuilder
pub fn timeout(self, timeout: Duration) -> ClientBuilder
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) -> ClientBuilder
pub fn connect_timeout(self, timeout: Duration) -> ClientBuilder
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,
) -> ClientBuilder
pub fn low_speed_timeout( self, low_speed: u32, timeout: Duration, ) -> ClientBuilder
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) -> ClientBuilder
pub fn redirect_policy(self, policy: RedirectPolicy) -> ClientBuilder
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) -> ClientBuilder
pub fn auto_decompress(self, enabled: bool) -> ClientBuilder
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) -> ClientBuilder
pub fn max_upload_speed(self, max: u64) -> ClientBuilder
Set a maximum upload speed for the request body, in bytes per second.
sourcepub fn max_download_speed(self, max: u64) -> ClientBuilder
pub fn max_download_speed(self, max: u64) -> ClientBuilder
Set a maximum download speed for the response body, in bytes per second.
sourcepub fn metrics(self, enable: bool) -> ClientBuilder
pub fn metrics(self, enable: bool) -> ClientBuilder
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) -> ClientBuilder
pub fn cache(self, cache: impl CacheDb) -> ClientBuilder
Sets the CacheDb
to use.
Caching is only enabled if there is a DB, no caching is done by default.
sourcepub fn cache_mode(
self,
selector: impl Fn(&Request) -> CacheMode + Send + Sync + 'static,
) -> ClientBuilder
pub fn cache_mode( self, selector: impl Fn(&Request) -> CacheMode + Send + Sync + 'static, ) -> ClientBuilder
Trait Implementations§
source§impl Default for ClientBuilder
impl Default for ClientBuilder
source§fn default() -> ClientBuilder
fn default() -> ClientBuilder
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for 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§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian()
.