pub struct HttpClientFactory { /* private fields */ }Expand description
Builds route-specific HTTP clients using one resolved outbound proxy policy.
Construct this once from the effective application configuration and carry it with the session or component that owns outbound requests. Individual request paths should supply only their destination and route class rather than resolving feature state themselves.
Implementations§
Source§impl HttpClientFactory
impl HttpClientFactory
Sourcepub fn build_client(
&self,
request_url: &str,
route_class: ClientRouteClass,
) -> Result<HttpClient, BuildRouteAwareHttpClientError>
pub fn build_client( &self, request_url: &str, route_class: ClientRouteClass, ) -> Result<HttpClient, BuildRouteAwareHttpClientError>
Builds an HTTP client for one fixed destination using the configured proxy policy.
This is the preferred construction path for product traffic that uses a fixed destination.
Use crate::RouteAwareClientPool instead when request or redirect URLs can vary.
Sourcepub fn build_client_without_request_logging(
&self,
request_url: &str,
route_class: ClientRouteClass,
) -> Result<HttpClient, BuildRouteAwareHttpClientError>
pub fn build_client_without_request_logging( &self, request_url: &str, route_class: ClientRouteClass, ) -> Result<HttpClient, BuildRouteAwareHttpClientError>
Builds a policy-aware client without request URL or response-header diagnostics.
This has the same routing guidance as Self::build_client.
Source§impl HttpClientFactory
impl HttpClientFactory
Sourcepub const fn new(outbound_proxy_policy: OutboundProxyPolicy) -> Self
pub const fn new(outbound_proxy_policy: OutboundProxyPolicy) -> Self
Creates a factory from the outbound proxy policy resolved by the application.
Sourcepub const fn outbound_proxy_policy(&self) -> OutboundProxyPolicy
pub const fn outbound_proxy_policy(&self) -> OutboundProxyPolicy
Returns the outbound proxy policy used for clients built by this factory.
Sourcepub fn resolve_proxy_route(&self, request_url: &str) -> OutboundProxyRoute
pub fn resolve_proxy_route(&self, request_url: &str) -> OutboundProxyRoute
Resolves the proxy route for a concrete destination.
WebSocket schemes are resolved through their HTTP equivalents so platform PAC and system
proxy APIs apply the same policy to ws/wss and http/https destinations. When system
resolution is unavailable, explicit environment settings are resolved before falling back
to a direct route.
Sourcepub async fn resolve_proxy_route_async(
&self,
request_url: String,
) -> Result<OutboundProxyRoute>
pub async fn resolve_proxy_route_async( &self, request_url: String, ) -> Result<OutboundProxyRoute>
Resolves the proxy route for a concrete destination without blocking a Tokio worker.
Sourcepub fn build_reqwest_client(
&self,
builder: ClientBuilder,
request_url: &str,
route_class: ClientRouteClass,
) -> Result<Client, BuildRouteAwareHttpClientError>
pub fn build_reqwest_client( &self, builder: ClientBuilder, request_url: &str, route_class: ClientRouteClass, ) -> Result<Client, BuildRouteAwareHttpClientError>
Builds a reqwest client for a concrete outbound route.
Trait Implementations§
Source§impl Clone for HttpClientFactory
impl Clone for HttpClientFactory
Source§fn clone(&self) -> HttpClientFactory
fn clone(&self) -> HttpClientFactory
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HttpClientFactory
impl Debug for HttpClientFactory
impl Eq for HttpClientFactory
Source§impl PartialEq for HttpClientFactory
impl PartialEq for HttpClientFactory
impl StructuralPartialEq for HttpClientFactory
Auto Trait Implementations§
impl Freeze for HttpClientFactory
impl RefUnwindSafe for HttpClientFactory
impl Send for HttpClientFactory
impl Sync for HttpClientFactory
impl Unpin for HttpClientFactory
impl UnsafeUnpin for HttpClientFactory
impl UnwindSafe for HttpClientFactory
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.