HubHttpClient class

An http.Client that tunnels requests through the Hub instead of issuing them from the current process.

The browser client cannot call AI provider APIs directly (CORS), so it routes each request through ClientRuntime.proxyHttp; the Hub performs the outbound HTTPS request and returns the response. Because it satisfies the standard http.Client contract, the existing Anthropic/OpenAI/Gemini providers use it unchanged via providerFor(config, HubHttpClient(...)).

When credentialMode is HttpProxyCredentialMode.hubDefault the Hub injects its own key for provider (the request need not carry one); otherwise the request — including whatever Authorization/x-api-key header the provider set from the client-supplied key — is forwarded verbatim.

Constructors

HubHttpClient(ClientRuntime client, {HttpProxyCredentialMode credentialMode = HttpProxyCredentialMode.none, String? provider})
Creates a Hub-backed HTTP client.

Properties

client ClientRuntime
The connected client runtime that brokers the request through the Hub.
final
credentialMode HttpProxyCredentialMode
Whether the Hub should inject its default credentials.
final
hashCode int
The hash code for this object.
no setterinherited
provider String?
The provider token, used by the Hub to pick the credential scheme when credentialMode is hubDefault.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

close() → void
No-op: the shared ClientRuntime/Hub connection outlives this client and must not be torn down when a provider is disposed.
delete(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP DELETE request with the given headers to the given URL.
inherited
get(Uri url, {Map<String, String>? headers}) Future<Response>
Sends an HTTP GET request with the given headers to the given URL.
inherited
Sends an HTTP HEAD request with the given headers to the given URL.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
patch(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP PATCH request with the given headers and body to the given URL.
inherited
post(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP POST request with the given headers and body to the given URL.
inherited
put(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP PUT request with the given headers and body to the given URL.
inherited
read(Uri url, {Map<String, String>? headers}) Future<String>
Sends an HTTP GET request with the given headers to the given URL and returns a Future that completes to the body of the response as a String.
inherited
readBytes(Uri url, {Map<String, String>? headers}) Future<Uint8List>
Sends an HTTP GET request with the given headers to the given URL and returns a Future that completes to the body of the response as a list of bytes.
inherited
send(BaseRequest request) Future<StreamedResponse>
Sends an HTTP request and asynchronously returns the response.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited