Flutter网络请求插件rest_api_helper的使用

本README描述了该包的功能。如果你将此包发布到pub.dev,此README的内容将出现在你的包的首页。

特性

  • 简单的请求
  • POST 请求
  • GET 请求
  • PUT 请求
  • DELETE 请求

rest_api_helper使用方法

  1. 首先,导入库文件:
import 'package:rest_api_helper/rest_api_helper.dart';
  1. 创建 RestApiHelper 实例并发送请求。以下是一个完整的示例,展示了如何使用 rest_api_helper 插件进行不同的 HTTP 请求类型。
import 'package:flutter/material.dart';
import 'package:rest_api_helper/rest_api_helper.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('rest_api_helper 示例'),
        ),
        body: RestApiExample(),
      ),
    );
  }
}

class RestApiExample extends StatefulWidget {
  @override
  _RestApiExampleState createState() => _RestApiExampleState();
}

class _RestApiExampleState extends State<RestApiExample> {
  String response = '';
  bool isLoading = false;

  Future<void> sendRequest(String path, RequestType requestType) async {
    setState(() {
      isLoading = true;
    });

    RestApiHelper rest = RestApiHelper();

    try {
      // 发送请求
      final result = await rest.send(path, requestType);

      // 处理响应
      setState(() {
        response = result.toString();
      });
    } catch (e) {
      // 捕获异常
      setState(() {
        response = e.toString();
      });
    } finally {
      // 设置加载状态为 false
      setState(() {
        isLoading = false;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          ElevatedButton(
            onPressed: () => sendRequest('/example', RequestType.GET),
            child: Text('发送 GET 请求'),
          ),
          SizedBox(height: 10),
          ElevatedButton(
            onPressed: () => sendRequest('/example', RequestType.POST),
            child: Text('发送 POST 请求'),
          ),
          SizedBox(height: 10),
          ElevatedButton(
            onPressed: () => sendRequest('/example', RequestType.PUT),
            child: Text('发送 PUT 请求'),
          ),
          SizedBox(height: 10),
          ElevatedButton(
            onPressed: () => sendRequest('/example', RequestType.DELETE),
            child: Text('发送 DELETE 请求'),
          ),
          SizedBox(height: 20),
          isLoading
              ? CircularProgressIndicator()
              : Text(response),
        ],
      ),
    );
  }
}

说明

  1. 导入库

    import 'package:rest_api_helper/rest_api_helper.dart';
    

    导入 rest_api_helper 库以简化 REST API 请求。

  2. 创建实例

    RestApiHelper rest = RestApiHelper();

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

1 回复

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


rest_api_helper 是一个用于简化 Flutter 中网络请求的插件。它提供了一种简单的方式来执行 HTTP 请求,并处理响应。以下是如何使用 rest_api_helper 插件的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 rest_api_helper 依赖:

dependencies:
  flutter:
    sdk: flutter
  rest_api_helper: ^1.0.0  # 请使用最新版本

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

2. 导入包

在你的 Dart 文件中导入 rest_api_helper

import 'package:rest_api_helper/rest_api_helper.dart';

3. 创建 RestApiHelper 实例

你可以通过以下方式创建一个 RestApiHelper 实例:

final apiHelper = RestApiHelper(baseUrl: 'https://jsonplaceholder.typicode.com');

baseUrl 是你的 API 的基础 URL。

4. 执行网络请求

rest_api_helper 提供了多种方法来执行 HTTP 请求,如 get, post, put, delete 等。

GET 请求

Future<void> fetchData() async {
  try {
    final response = await apiHelper.get('/posts');
    print(response);
  } catch (e) {
    print('Error: $e');
  }
}

POST 请求

Future<void> postData() async {
  try {
    final response = await apiHelper.post('/posts', body: {
      'title': 'foo',
      'body': 'bar',
      'userId': 1,
    });
    print(response);
  } catch (e) {
    print('Error: $e');
  }
}

PUT 请求

Future<void> updateData() async {
  try {
    final response = await apiHelper.put('/posts/1', body: {
      'id': 1,
      'title': 'foo',
      'body': 'bar',
      'userId': 1,
    });
    print(response);
  } catch (e) {
    print('Error: $e');
  }
}

DELETE 请求

Future<void> deleteData() async {
  try {
    final response = await apiHelper.delete('/posts/1');
    print(response);
  } catch (e) {
    print('Error: $e');
  }
}

5. 处理响应

rest_api_helper 会自动将响应解析为 Map<String, dynamic>List<dynamic>,你可以直接使用这些数据。

6. 错误处理

rest_api_helper 会自动处理常见的网络错误,并在请求失败时抛出异常。你可以使用 try-catch 块来捕获并处理这些错误。

7. 自定义请求头

你可以在请求中添加自定义的请求头:

final response = await apiHelper.get('/posts', headers: {
  'Authorization': 'Bearer your_token',
});

8. 其他配置

rest_api_helper 还支持其他配置,如超时设置、请求拦截器等。你可以根据需要进行配置。

示例代码

以下是一个完整的示例,展示了如何使用 rest_api_helper 进行 GET 请求:

import 'package:flutter/material.dart';
import 'package:rest_api_helper/rest_api_helper.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('RestApiHelper Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: fetchData,
            child: Text('Fetch Data'),
          ),
        ),
      ),
    );
  }

  Future<void> fetchData() async {
    final apiHelper = RestApiHelper(baseUrl: 'https://jsonplaceholder.typicode.com');
    try {
      final response = await apiHelper.get('/posts');
      print(response);
    } catch (e) {
      print('Error: $e');
    }
  }
}
回到顶部