Flutter网络请求简化插件easy_api_client的使用

Flutter网络请求简化插件easy_api_client的使用

easy_api_client

Pub Dart CI

easy_api_client 是一个用于简化与RESTful API集成的Dart包,通过提供易于使用的API客户端。

特性

  • 简化API调用:使用极少量的代码即可轻松发起GET、POST、PUT、DELETE请求。
  • 错误处理:内置对常见HTTP状态码和网络问题的错误处理。
  • 可配置:可以自定义头部信息、超时设置等HTTP客户端参数。
  • 异步操作:使用Dart的asyncawait进行完全异步操作以实现非阻塞请求。

安装

在你的pubspec.yaml文件中添加以下内容:

dependencies:
  easy_api_client: ^1.0.0

然后运行:

flutter pub get

使用

导入包

import 'package:easy_api_client/easy_api_client.dart';

创建EasyApiClient实例

final apiClient = EasyApiClient(baseUrl: 'https://api.example.com');

发起GET请求

try {
  final response = await apiClient.get('/users');
  // 处理成功的响应
} catch (e) {
  // 处理错误
}

发起POST请求

try {
  final response = await apiClient.post('/users', body: {'name': 'John Doe'});
  // 处理成功的响应
} catch (e) {
  // 处理错误
}

更多关于Flutter网络请求简化插件easy_api_client的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter网络请求简化插件easy_api_client的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


easy_api_client 是一个简化 Flutter 网络请求的插件,它可以帮助开发者更轻松地处理 HTTP 请求和响应。以下是如何使用 easy_api_client 的基本步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 easy_api_client 依赖:

dependencies:
  flutter:
    sdk: flutter
  easy_api_client: ^1.0.0  # 请确保使用最新版本

然后运行 flutter pub get 来安装依赖。

2. 基本使用

2.1 初始化 EasyApiClient

在使用 easy_api_client 之前,你需要初始化一个 EasyApiClient 实例:

import 'package:easy_api_client/easy_api_client.dart';

final easyApiClient = EasyApiClient(
  baseUrl: 'https://jsonplaceholder.typicode.com', // 你的 API 基础 URL
  defaultHeaders: {
    'Content-Type': 'application/json',
  },
);

2.2 发送 GET 请求

使用 get 方法发送 GET 请求:

Future<void> fetchPosts() async {
  try {
    final response = await easyApiClient.get('/posts');
    print(response.data); // 打印响应数据
  } catch (e) {
    print('Error: $e');
  }
}

2.3 发送 POST 请求

使用 post 方法发送 POST 请求:

Future<void> createPost() async {
  try {
    final response = await easyApiClient.post(
      '/posts',
      data: {
        'title': 'foo',
        'body': 'bar',
        'userId': 1,
      },
    );
    print(response.data); // 打印响应数据
  } catch (e) {
    print('Error: $e');
  }
}

2.4 发送 PUT 请求

使用 put 方法发送 PUT 请求:

Future<void> updatePost() async {
  try {
    final response = await easyApiClient.put(
      '/posts/1',
      data: {
        'id': 1,
        'title': 'foo updated',
        'body': 'bar updated',
        'userId': 1,
      },
    );
    print(response.data); // 打印响应数据
  } catch (e) {
    print('Error: $e');
  }
}

2.5 发送 DELETE 请求

使用 delete 方法发送 DELETE 请求:

Future<void> deletePost() async {
  try {
    final response = await easyApiClient.delete('/posts/1');
    print(response.data); // 打印响应数据
  } catch (e) {
    print('Error: $e');
  }
}

3. 处理响应

easy_api_client 返回的响应是一个 ApiResponse 对象,你可以通过 response.data 访问响应数据,response.statusCode 访问状态码,response.headers 访问响应头。

4. 错误处理

你可以通过 try-catch 块来捕获请求过程中可能出现的错误。

5. 自定义配置

你可以在初始化 EasyApiClient 时传递自定义配置,例如超时时间、拦截器等:

final easyApiClient = EasyApiClient(
  baseUrl: 'https://jsonplaceholder.typicode.com',
  defaultHeaders: {
    'Content-Type': 'application/json',
  },
  timeout: Duration(seconds: 30),
  interceptors: [
    (request) {
      print('Request: ${request.url}');
      return request;
    },
    (response) {
      print('Response: ${response.statusCode}');
      return response;
    },
  ],
);

6. 使用拦截器

拦截器允许你在请求和响应的过程中添加自定义逻辑。例如,你可以在请求前添加认证头,或者在响应后记录日志。

easyApiClient.interceptors.addAll([
  (request) {
    // 在请求前添加认证头
    request.headers['Authorization'] = 'Bearer token';
    return request;
  },
  (response) {
    // 在响应后记录日志
    print('Response: ${response.statusCode}');
    return response;
  },
]);

7. 取消请求

你可以通过 CancelToken 来取消正在进行的请求:

final cancelToken = CancelToken();

Future<void> fetchPosts() async {
  try {
    final response = await easyApiClient.get('/posts', cancelToken: cancelToken);
    print(response.data);
  } catch (e) {
    if (CancelToken.isCancel(e)) {
      print('Request canceled');
    } else {
      print('Error: $e');
    }
  }
}

void cancelRequest() {
  cancelToken.cancel();
}
回到顶部