alaz 1.0.0 copy "alaz: ^1.0.0" to clipboard
alaz: ^1.0.0 copied to clipboard

A powerful and customizable HTTP client for Dart and Flutter with support for retry, interceptors, caching, and more.

Alaz #

pub package

Alaz is a powerful and customizable HTTP client for Dart and Flutter. It includes features such as retry mechanism, interceptors, request cancellation, caching, and more.

Features #

  • HTTP Requests: Supports GET, POST, and other HTTP methods.
  • Retry Mechanism: Automatically retries failed requests.
  • Interceptors: Add interceptors to modify requests, responses, or handle errors.
  • Request Cancellation: Easily cancel ongoing HTTP requests.
  • Caching: Cache HTTP responses to improve performance.
  • Timeout Control: Customize connection and response timeouts.
  • Proxy Support: Send requests through a proxy server.
  • Chained Requests: Chain multiple HTTP requests.

Installation #

Add alaz to your pubspec.yaml file:

dependencies:
  alaz: ^1.0.0

Then run: #

flutter pub get

Getting Started #

Here’s how to use Alaz in your project:

Basic Usage #

import 'package:alaz/alaz.dart';

void main() async {
  final alaz = Alaz();

  // Simple GET request
  final response = await alaz.get('https://jsonplaceholder.typicode.com/posts/1');
  print(response.data);

  // POST request with data
  final postResponse = await alaz.post('https://jsonplaceholder.typicode.com/posts',
    data: {'title': 'foo', 'body': 'bar', 'userId': 1});
  print(postResponse.data);
}

Retry Mechanism: #

Alaz automatically retries failed requests based on the configured retryCount.

final alaz = Alaz(
  options: AlazOptions(retryCount: 3),
);

try {
  final response = await alaz.get('https://invalid-url');
} catch (e) {
  print('Request failed after 3 retries.');
}

Interceptors #

You can add interceptors to modify requests, responses, or handle errors.

final alaz = Alaz();
alaz.addInterceptor(TestInterceptor(
  onRequestCallback: (AlazRequest request) async {
    print('Requesting: ${request.path}');
  },
  onResponseCallback: (AlazResponse response) async {
    print('Response received: ${response.statusCode}');
  },
  onErrorCallback: (error) async {
    print('Error occurred: $error');
  },
));

Request Cancellation #

You can cancel ongoing requests using CancelToken.

final alaz = Alaz();
final cancelToken = CancelToken();

alaz.get('https://jsonplaceholder.typicode.com/posts/1', cancelToken: cancelToken);

cancelToken.cancel();

Timeout Configuration #

You can set custom timeouts for requests.

final alaz = Alaz(
  options: AlazOptions(connectTimeout: 5000, receiveTimeout: 3000),
);

try {
  final response = await alaz.get('https://jsonplaceholder.typicode.com/posts/1');
} catch (e) {
  print('Request timed out.');
}

Proxy Support #

Alaz can send requests through a proxy.

final alaz = Alaz(
  options: AlazOptions(proxy: 'http://proxy-server.com:8080'),
);

final response = await alaz.get('https://jsonplaceholder.typicode.com/posts/1');

Chained Requests #

You can chain multiple requests together.

final alaz = Alaz();

final firstResponse = await alaz.get('https://jsonplaceholder.typicode.com/posts/1');
final secondResponse = await alaz.get('https://jsonplaceholder.typicode.com/posts/2');

final chainedResponse = await alaz.chainRequests(firstResponse, secondResponse);
print(chainedResponse.data);

Testing #

To run the tests, simply use the flutter test command:

flutter test
1
likes
125
points
25
downloads

Publisher

unverified uploader

Weekly Downloads

A powerful and customizable HTTP client for Dart and Flutter with support for retry, interceptors, caching, and more.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter, http

More

Packages that depend on alaz