pub struct HttpClient { /* private fields */ }Expand description
HTTP client with connection pooling and circuit breaker support.
Implementations§
Source§impl HttpClient
impl HttpClient
Sourcepub fn new(config: HttpClientConfig) -> Result<Self, HttpClientError>
pub fn new(config: HttpClientConfig) -> Result<Self, HttpClientError>
Create a new HTTP client.
Sourcepub async fn call(
&self,
request: HttpRequest,
) -> Result<HttpResponse, HttpClientError>
pub async fn call( &self, request: HttpRequest, ) -> Result<HttpResponse, HttpClientError>
Make an HTTP request.
Sourcepub async fn stream_raw(
&self,
request: HttpRequest,
) -> Result<Response, HttpClientError>
pub async fn stream_raw( &self, request: HttpRequest, ) -> Result<Response, HttpClientError>
Send a streaming HTTP request and return the raw upstream response.
Applies the same URL validation, plaintext checks, and circuit breaker
as call, but returns the reqwest::Response directly so the caller
can stream the response body chunk by chunk (e.g. via bytes_stream()).
The circuit breaker is only updated on connection-level errors; success recording is left to the caller after streaming completes.
Sourcepub async fn call_with_tls(
&self,
request: HttpRequest,
tls_config: Option<&TlsConfig>,
) -> Result<HttpResponse, HttpClientError>
pub async fn call_with_tls( &self, request: HttpRequest, tls_config: Option<&TlsConfig>, ) -> Result<HttpResponse, HttpClientError>
Make an HTTP request with optional TLS configuration for mTLS.
Sourcepub fn configure_circuit_breaker(
&self,
host: &str,
config: CircuitBreakerConfig,
)
pub fn configure_circuit_breaker( &self, host: &str, config: CircuitBreakerConfig, )
Configure circuit breaker for a host.
Trait Implementations§
Source§impl Clone for HttpClient
impl Clone for HttpClient
Source§fn clone(&self) -> HttpClient
fn clone(&self) -> HttpClient
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for HttpClient
impl !RefUnwindSafe for HttpClient
impl Send for HttpClient
impl Sync for HttpClient
impl Unpin for HttpClient
impl UnsafeUnpin for HttpClient
impl !UnwindSafe for HttpClient
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<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>
Converts
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>
Converts
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request