SClient class

A powerful HTTP client supporting both http and dio backends.

Use SClient.instance for a singleton with default configuration, or create a new instance with custom ClientConfig.

Constructors

SClient({ClientConfig config = const ClientConfig()})
Creates a new SClient instance with optional configuration.

Properties

config ClientConfig
The configuration for this instance.
final
hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

cancel(String cancelKey, {String? reason}) → void
Cancels a request by its cancel key.
cancelAll({String? reason}) → void
Cancels all pending requests.
checkReachability({required String url, required void onResult(bool isReachable), Duration? timeout, ClientType? clientType}) Future<void>
Checks reachability with callback-based response handling.
close() → void
Closes the HTTP clients and cleans up resources.
delete({required String url, Map<String, dynamic>? body, Map<String, String>? headers, Duration? timeout, ClientType? clientType, String? cancelKey, OnSuccess? onSuccess, OnError? onError, OnHttpError? onHttpError, Map<int, OnStatus>? onStatus, Set<int>? successCodes, Set<int>? errorCodes}) Future<ClientResult>
Performs a DELETE request and returns the result as a tuple.
download({required String url, Map<String, String>? headers, Duration? timeout, ClientType? clientType, OnProgress? onProgress, String? cancelKey, void onSuccess(List<int> bytes)?, OnError? onError}) Future<(List<int>?, ClientException?)>
Downloads a file from the specified URL.
downloadToFile({required String url, required String savePath, Map<String, String>? headers, Duration? timeout, ClientType? clientType, OnProgress? onProgress, String? cancelKey, FileAccessMode? fileAccessMode, void onSuccess(String savedPath)?, OnError? onError}) Future<(String?, ClientException?)>
Downloads a file from the specified URL and saves it to a file path.
get({required String url, Map<String, String>? headers, Map<String, String>? queryParameters, Duration? timeout, ClientType? clientType, String? cancelKey, OnSuccess? onSuccess, OnError? onError, OnHttpError? onHttpError, Map<int, OnStatus>? onStatus, Set<int>? successCodes, Set<int>? errorCodes}) Future<ClientResult>
Performs a GET request and returns the result as a tuple.
getJson<T>({required String url, required T fromJson(Map<String, dynamic> json), required OnSuccessTyped<T> onSuccess, required OnError onError, Map<String, String>? headers, Map<String, String>? queryParameters, Duration? timeout, ClientType? clientType, String? cancelKey, OnHttpError? onHttpError, Map<int, OnStatus>? onStatus, Set<int>? successCodes, Set<int>? errorCodes}) Future<ClientResult>
Performs a GET request with typed JSON response.
getJsonList<T>({required String url, required T fromJson(Map<String, dynamic> json), required OnSuccessTyped<List<T>> onSuccess, required OnError onError, Map<String, String>? headers, Map<String, String>? queryParameters, Duration? timeout, ClientType? clientType, String? cancelKey, OnHttpError? onHttpError, Map<int, OnStatus>? onStatus, Set<int>? successCodes, Set<int>? errorCodes}) Future<ClientResult>
Performs a GET request with typed JSON list response.
Performs a HEAD request and returns the result as a tuple.
isReachable(String url, {Duration? timeout, ClientType? clientType}) Future<bool>
Checks if a URL is reachable.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
patch({required String url, required Map<String, dynamic> body, Map<String, String>? headers, Duration? timeout, ClientType? clientType, String? cancelKey, OnSuccess? onSuccess, OnError? onError, OnHttpError? onHttpError, Map<int, OnStatus>? onStatus, Set<int>? successCodes, Set<int>? errorCodes}) Future<ClientResult>
Performs a PATCH request and returns the result as a tuple.
post({required String url, required Map<String, dynamic> body, Map<String, String>? headers, Duration? timeout, ClientType? clientType, String? cancelKey, OnSuccess? onSuccess, OnError? onError, OnHttpError? onHttpError, Map<int, OnStatus>? onStatus, Set<int>? successCodes, Set<int>? errorCodes}) Future<ClientResult>
Performs a POST request and returns the result as a tuple.
postJson<T>({required String url, required Map<String, dynamic> body, required T fromJson(Map<String, dynamic> json), required OnSuccessTyped<T> onSuccess, required OnError onError, Map<String, String>? headers, Duration? timeout, ClientType? clientType, String? cancelKey, OnHttpError? onHttpError, Map<int, OnStatus>? onStatus, Set<int>? successCodes, Set<int>? errorCodes}) Future<ClientResult>
Performs a POST request with typed JSON response.
put({required String url, required Map<String, dynamic> body, Map<String, String>? headers, Duration? timeout, ClientType? clientType, String? cancelKey, OnSuccess? onSuccess, OnError? onError, OnHttpError? onHttpError, Map<int, OnStatus>? onStatus, Set<int>? successCodes, Set<int>? errorCodes}) Future<ClientResult>
Performs a PUT request and returns the result as a tuple.
toString() String
A string representation of this object.
inherited
uploadFile({required String url, required String filePath, required String fileField, Map<String, String>? fields, Map<String, String>? headers, Duration? timeout, ClientType? clientType, OnProgress? onProgress, String? cancelKey, OnSuccess? onSuccess, OnError? onError, OnHttpError? onHttpError, Map<int, OnStatus>? onStatus, Set<int>? successCodes, Set<int>? errorCodes}) Future<ClientResult>
Uploads a file using multipart/form-data.

Operators

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

Static Properties

instance SClient
Gets the singleton instance with default configuration.
no setter

Static Methods

configure(ClientConfig config) → void
Reconfigures the singleton instance.