network 0.3.0 copy "network: ^0.3.0" to clipboard
network: ^0.3.0 copied to clipboard

outdated

Package including hooks for easy works with http package in dart

example/main.dart

import 'package:network/network.dart' as network;

/// HTTP 400
class BadRequestException<T extends network.BinaryResponse>
    extends network.NetworkException<T> {
  BadRequestException(T response) : super(response);
}

/// HTTP 404
class NotFoundException<T extends network.BinaryResponse>
    extends network.NetworkException<T> {
  NotFoundException(T response) : super(response);
}

main() async {
  network.NetworkSettings().exceptionDelegate = (network.NetworkException error) {
    // You can check type of respose in error by:
    // if (error is network.JsonApiResponse)

    switch (error.code) {
      case 400:
        throw BadRequestException(error.response);
      case 404:
        throw NotFoundException(error.response);
      default:
        throw error;
    }
  };

  final getResponse = await network.get<network.JsonApiResponse>(
      'https://jsonplaceholder.typicode.com/comments',
      queryParameters: {'postId': 1});
  print(getResponse.toList[1]['body']);

  // Post request to api
  final postResponse = await network.post<network.JsonApiResponse>(
      'https://jsonplaceholder.typicode.com/todos',
      body: {'title': 'test'});
  print(postResponse.toMap['id']);

  // Or post binary
  // await network.post<network.JsonApiResponse>(
  //   'https://jsonplaceholder.typicode.com/todos', body: [0,0,0,0,0],
  // jsonBody: false);

  /// Handle exceptions
  try {
    await network.get('https://jsonplaceholder.typicode.com/todos/202');
  } on network.NetworkException catch (error) {
    print('Network exception handled: ${error}');
  }
}
11
likes
0
pub points
67%
popularity

Publisher

verified publisherserge.software

Package including hooks for easy works with http package in dart

Homepage
Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

http

More

Packages that depend on network