Struct qiniu_http_client::HttpClient
source · [−]pub struct HttpClient { /* private fields */ }
Expand description
HTTP 客户端
用于发送 HTTP 请求的入口。
其中 HTTP 请求将由 HttpCaller
实现的实例来发送,如果不指定,默认通过当前启用的功能来判定。
私有云获取当前账户的 Buckets 列表
阻塞代码示例
use qiniu_credential::Credential;
use qiniu_http_client::{Authorization, HttpClient, Region, RegionsProviderEndpoints, ServiceName};
let region = Region::builder("z0")
.add_uc_preferred_endpoint("uc-qos.pocdemo.qiniu.io".parse()?)
.build();
let credential = Credential::new("abcdefghklmnopq", "1234567890");
let bucket_names: Vec<String> = HttpClient::default()
.get(&[ServiceName::Uc], RegionsProviderEndpoints::new(region))
.use_https(false)
.authorization(Authorization::v2(credential))
.accept_json()
.path("/buckets")
.call()?
.parse_json()?
.into_body();
异步代码示例
use qiniu_credential::Credential;
use qiniu_http_client::{Authorization, HttpClient, Region, RegionsProviderEndpoints, ServiceName};
let region = Region::builder("z0")
.add_uc_preferred_endpoint("uc-qos.pocdemo.qiniu.io".parse()?)
.build();
let credential = Credential::new("abcdefghklmnopq", "1234567890");
let bucket_names: Vec<String> = HttpClient::default()
.async_get(&[ServiceName::Uc], RegionsProviderEndpoints::new(region))
.use_https(false)
.authorization(Authorization::v2(credential))
.accept_json()
.path("/buckets")
.call()
.await?
.parse_json()
.await?
.into_body();
Implementations
sourceimpl HttpClient
impl HttpClient
sourcepub fn ureq() -> Self
Available on crate feature ureq
only.
pub fn ureq() -> Self
ureq
only.创建一个新的 HTTP 客户端,使用 crate::ureq::Client
作为 HttpCaller
实现
sourcepub fn isahc() -> Result<Self, IsahcError>
Available on crate feature isahc
only.
pub fn isahc() -> Result<Self, IsahcError>
isahc
only.创建一个新的 HTTP 客户端,使用 crate::isahc::Client
作为 HttpCaller
实现
sourcepub fn reqwest_sync() -> Self
Available on crate feature reqwest
only.
pub fn reqwest_sync() -> Self
reqwest
only.创建一个新的 HTTP 客户端,使用 crate::reqwest::SyncClient
作为 HttpCaller
实现
sourcepub fn reqwest_async() -> Self
Available on crate features reqwest
and async
only.
pub fn reqwest_async() -> Self
reqwest
and async
only.创建一个新的 HTTP 客户端,使用 crate::reqwest::AsyncClient
作为 HttpCaller
实现
sourcepub fn build_default() -> HttpClientBuilder
pub fn build_default() -> HttpClientBuilder
创建一个新的 HTTP 客户端,根据当前环境变量选择 HttpCaller
实现
sourcepub fn build_ureq() -> HttpClientBuilder
Available on crate feature ureq
only.
pub fn build_ureq() -> HttpClientBuilder
ureq
only.创建一个新的 HTTP 客户端构建器,使用 crate::ureq::Client
作为 HttpCaller
实现
sourcepub fn build_isahc() -> Result<HttpClientBuilder, IsahcError>
Available on crate feature isahc
only.
pub fn build_isahc() -> Result<HttpClientBuilder, IsahcError>
isahc
only.创建一个新的 HTTP 客户端构建器,使用 crate::isahc::Client
作为 HttpCaller
实现
sourcepub fn build_reqwest_sync() -> HttpClientBuilder
Available on crate feature reqwest
only.
pub fn build_reqwest_sync() -> HttpClientBuilder
reqwest
only.创建一个新的 HTTP 客户端构建器,使用 crate::reqwest::SyncClient
作为 HttpCaller
实现
sourcepub fn build_reqwest_async() -> HttpClientBuilder
Available on crate features reqwest
and async
only.
pub fn build_reqwest_async() -> HttpClientBuilder
reqwest
and async
only.创建一个新的 HTTP 客户端构建器,使用 crate::reqwest::AsyncClient
作为 HttpCaller
实现
sourcepub fn new(http_caller: impl HttpCaller + 'static) -> Self
pub fn new(http_caller: impl HttpCaller + 'static) -> Self
创建一个新的 HTTP 客户端,需要指定 HttpCaller
实现
sourcepub fn builder(http_caller: impl HttpCaller + 'static) -> HttpClientBuilder
pub fn builder(http_caller: impl HttpCaller + 'static) -> HttpClientBuilder
创建一个新的 HTTP 客户端构建器,需要指定 HttpCaller
实现
sourcepub fn get<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> SyncRequestBuilder<'r, E>
pub fn get<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> SyncRequestBuilder<'r, E>
创建 GET 请求的请求构建器
该方法的异步版本为 HttpClient::async_get
。
sourcepub fn post<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> SyncRequestBuilder<'r, E>
pub fn post<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> SyncRequestBuilder<'r, E>
创建 POST 请求的请求构建器
该方法的异步版本为 HttpClient::async_post
。
sourcepub fn put<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> SyncRequestBuilder<'r, E>
pub fn put<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> SyncRequestBuilder<'r, E>
创建 PUT 请求的请求构建器
该方法的异步版本为 HttpClient::async_put
。
sourcepub fn delete<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> SyncRequestBuilder<'r, E>
pub fn delete<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> SyncRequestBuilder<'r, E>
创建 DELETE 请求的请求构建器
该方法的异步版本为 HttpClient::async_delete
。
sourcepub fn new_request<'r, E: EndpointsProvider + 'r>(
&'r self,
method: Method,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> SyncRequestBuilder<'r, E>
pub fn new_request<'r, E: EndpointsProvider + 'r>(
&'r self,
method: Method,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> SyncRequestBuilder<'r, E>
创建请求的请求构建器
该方法的异步版本为 HttpClient::new_async_request
。
sourcepub fn async_get<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> AsyncRequestBuilder<'r, E>
Available on crate feature async
only.
pub fn async_get<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> AsyncRequestBuilder<'r, E>
async
only.创建 GET 请求的异步请求构建器
sourcepub fn async_post<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> AsyncRequestBuilder<'r, E>
Available on crate feature async
only.
pub fn async_post<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> AsyncRequestBuilder<'r, E>
async
only.创建 POST 请求的异步请求构建器
sourcepub fn async_put<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> AsyncRequestBuilder<'r, E>
Available on crate feature async
only.
pub fn async_put<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> AsyncRequestBuilder<'r, E>
async
only.创建 PUT 请求的异步请求构建器
sourcepub fn async_delete<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> AsyncRequestBuilder<'r, E>
Available on crate feature async
only.
pub fn async_delete<'r, E: EndpointsProvider + 'r>(
&'r self,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> AsyncRequestBuilder<'r, E>
async
only.创建 DELETE 请求的异步请求构建器
sourcepub fn new_async_request<'r, E: EndpointsProvider + 'r>(
&'r self,
method: Method,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> AsyncRequestBuilder<'r, E>
pub fn new_async_request<'r, E: EndpointsProvider + 'r>(
&'r self,
method: Method,
service_names: &'r [ServiceName],
endpoints_provider: E
) -> AsyncRequestBuilder<'r, E>
创建异步请求的请求构建器
sourceimpl HttpClient
impl HttpClient
sourcepub fn default_http_caller() -> Box<dyn HttpCaller>
pub fn default_http_caller() -> Box<dyn HttpCaller>
获得默认的 HttpCaller
实例
默认通过当前启用的功能来判定
sourcepub fn default_resolver() -> Box<dyn Resolver>
pub fn default_resolver() -> Box<dyn Resolver>
获得默认的 Resolver
实例
默认通过当前启用的功能来判定,并使用 CachedResolver
和 ShuffledResolver
对其进行包装。
sourcepub fn default_chooser() -> Box<dyn Chooser>
pub fn default_chooser() -> Box<dyn Chooser>
获得默认的 Chooser
实例
默认使用 SubnetChooser
,并使用 ShuffledChooser
和 NeverEmptyHandedChooser
对其进行包装。
sourcepub fn default_retrier() -> Box<dyn RequestRetrier>
pub fn default_retrier() -> Box<dyn RequestRetrier>
获得默认的 RequestRetrier
实例
默认使用 ErrorRetrier
,并使用 LimitedRetrier
对其进行包装。
sourcepub fn default_backoff() -> Box<dyn Backoff>
pub fn default_backoff() -> Box<dyn Backoff>
获得默认的 Backoff
实例
默认使用 ExponentialBackoff
,并使用 LimitedBackoff
和 RandomizedBackoff
对其进行包装。
Trait Implementations
sourceimpl Clone for HttpClient
impl Clone for HttpClient
sourcefn clone(&self) -> HttpClient
fn clone(&self) -> HttpClient
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for HttpClient
impl Debug for HttpClient
Auto Trait Implementations
impl !RefUnwindSafe for HttpClient
impl Send for HttpClient
impl Sync for HttpClient
impl Unpin for HttpClient
impl !UnwindSafe for HttpClient
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
sourcefn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
Pipes by value. This is generally the method you want to use. Read more
sourcefn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more
sourcefn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more
sourcefn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
Borrows self
, then passes self.borrow()
into the pipe function. Read more
sourcefn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
Mutably borrows self
, then passes self.borrow_mut()
into the pipe
function. Read more
sourcefn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
Borrows self
, then passes self.as_ref()
into the pipe function.
sourcefn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
Mutably borrows self
, then passes self.as_mut()
into the pipe
function. Read more
sourceimpl<T> Tap for T
impl<T> Tap for T
sourcefn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Immutable access to the Borrow<B>
of a value. Read more
sourcefn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Mutable access to the BorrowMut<B>
of a value. Read more
sourcefn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Immutable access to the AsRef<R>
view of a value. Read more
sourcefn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Mutable access to the AsMut<R>
view of a value. Read more
sourcefn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Immutable access to the Deref::Target
of a value. Read more
sourcefn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Mutable access to the Deref::Target
of a value. Read more
sourcefn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.
sourcefn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
builds. Read more
sourcefn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Calls .tap_borrow()
only in debug builds, and is erased in release
builds. Read more
sourcefn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read more
sourcefn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Calls .tap_ref()
only in debug builds, and is erased in release
builds. Read more
sourcefn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Calls .tap_ref_mut()
only in debug builds, and is erased in release
builds. Read more
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more