Flutter网络请求基础URL配置插件http_extensions_base_url的使用

Flutter网络请求基础URL配置插件http_extensions_base_url的使用

http_extensions : base url

http_extensions 是一个可以为带有相对路径的请求添加基础URL的扩展。

使用方法

首先,我们需要创建一个 ExtendedClient 实例,并将基础URL配置添加到其扩展列表中。

// 导入必要的包
import 'package:http_extensions/http_extensions.dart';
import 'package:http_extensions_base_url/http_extensions_base_url.dart';
import 'package:logging/logging.dart';
import 'package:http/http.dart' as http;

void main() async {
  // 设置日志级别以便查看详细的日志信息
  Logger.root.level = Level.ALL;
  Logger.root.onRecord.listen((record) {
    print('${record.level.name}: ${record.time}: ${record.message}');
  });

  // 创建一个 ExtendedClient 实例
  final client = ExtendedClient(
    inner: http.Client() as http.BaseClient,
    extensions: [
      BaseUrlExtension(
        logger: Logger('BaseUrl'),
        defaultOptions: BaseUrlOptions(url: Uri.parse('http://flutter.dev')), // 设置基础URL
      ),
    ],
  );

  // 发送GET请求
  final response = await client.get(Uri.parse('/docs'));

  // 打印响应体
  print('HTML内容: ${response.body}');
}

完整示例Demo

import 'package:http_extensions/http_extensions.dart';
import 'package:http_extensions_base_url/http_extensions_base_url.dart';
import 'package:logging/logging.dart';
import 'package:http/http.dart' as http;

void main() async {
  // 显示日志
  Logger.root.level = Level.ALL;
  Logger.root.onRecord.listen((record) {
    print('${record.level.name}: ${record.time}: ${record.message}');
  });

  // 创建一个 ExtendedClient 实例
  final client = ExtendedClient(
    inner: http.Client() as http.BaseClient,
    extensions: [
      BaseUrlExtension(
        logger: Logger('BaseUrl'),
        defaultOptions: BaseUrlOptions(url: Uri.parse('http://flutter.dev')), // 设置基础URL
      ),
    ],
  );

  // 发送GET请求
  final response = await client.get(Uri.parse('/docs'));

  // 打印响应体
  print('HTML内容: ${response.body}');
}

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

1 回复

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


在使用 Flutter 进行网络请求时,通常需要为所有请求配置一个基础 URL。为了简化这个过程,可以使用 http_extensions_base_url 插件。这个插件允许你设置一个基础 URL,并在发送请求时自动将其附加到相对路径上。

以下是如何使用 http_extensions_base_url 插件的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  http_extensions_base_url: ^1.0.0

然后运行 flutter pub get 来获取依赖。

2. 导入包

在你的 Dart 文件中导入 http_extensions_base_url 包:

import 'package:http_extensions_base_url/http_extensions_base_url.dart';
import 'package:http/http.dart' as http;

3. 配置基础 URL

创建一个 BaseUrlExtension 实例并配置基础 URL:

final baseUrlExtension = BaseUrlExtension(baseUrl: 'https://api.example.com');

4. 创建带有扩展的 HTTP 客户端

使用 http.ClientBaseUrlExtension 创建一个带有基础 URL 扩展的 HTTP 客户端:

final client = http.Client().withExtension(baseUrlExtension);

5. 发送请求

现在,你可以使用这个客户端发送请求,基础 URL 会自动附加到相对路径上:

void fetchData() async {
  final response = await client.get(Uri.parse('/data'));

  if (response.statusCode == 200) {
    print('Data fetched successfully: ${response.body}');
  } else {
    print('Failed to fetch data: ${response.statusCode}');
  }
}

在这个例子中,请求的完整 URL 将是 https://api.example.com/data

6. 关闭客户端

记得在使用完毕后关闭客户端:

client.close();

完整示例

以下是一个完整的示例,展示了如何配置和使用 http_extensions_base_url 插件:

import 'package:http_extensions_base_url/http_extensions_base_url.dart';
import 'package:http/http.dart' as http;

void main() async {
  final baseUrlExtension = BaseUrlExtension(baseUrl: 'https://api.example.com');
  final client = http.Client().withExtension(baseUrlExtension);

  try {
    final response = await client.get(Uri.parse('/data'));

    if (response.statusCode == 200) {
      print('Data fetched successfully: ${response.body}');
    } else {
      print('Failed to fetch data: ${response.statusCode}');
    }
  } finally {
    client.close();
  }
}
回到顶部