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
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresourceimpl 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
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> 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) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
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,
self and passes that borrow into the pipe function. Read moresourcefn 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,
self and passes that borrow into the pipe function. Read moresourcefn 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,
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,
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,
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,
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,
Borrow<B> of a value. Read moresourcefn 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,
BorrowMut<B> of a value. Read moresourcefn 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,
AsRef<R> view of a value. Read moresourcefn 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,
AsMut<R> view of a value. Read moresourcefn 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,
Deref::Target of a value. Read moresourcefn 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,
Deref::Target of a value. Read moresourcefn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.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
.tap_mut() only in debug builds, and is erased in release
builds. Read moresourcefn 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,
.tap_borrow() only in debug builds, and is erased in release
builds. Read moresourcefn 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,
.tap_borrow_mut() only in debug builds, and is erased in release
builds. Read moresourcefn 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,
.tap_ref() only in debug builds, and is erased in release
builds. Read moresourcefn 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,
.tap_ref_mut() only in debug builds, and is erased in release
builds. Read more