用途:在 Flutter 应用中用 http 包调用 REST API,完成数据获取与提交。
主要能力:配置依赖与权限;发送 GET、POST、PUT、DELETE 请求;设置请求头(如授权、Content-Type);用 jsonEncode 编码请求体;校验状态码(GET/PUT/DELETE 的 200、POST 的 201 视为成功),失败时抛出异常;用 jsonDecode 与 fromJson 工厂构造函数把响应映射为强类型 Dart 对象;通过 compute 在后台 Isolate 执行耗时 JSON 解析,避免界面卡顿。
使用方式:添加依赖 flutter pub add http,在 Dart 文件中 import 'package:http/http.dart' as http;。安卓需在 android/app/src/main/AndroidManifest.xml 添加 <uses-permission android:name="android.permission.INTERNET" />;macOS 需在 macos/Runner/DebugProfile.entitlements 与 macos/Runner/Release.entitlements 加入 com.apple.security.network.client 与 <true/>。URL 始终用 Uri.parse('your_url') 解析。
推荐流程:定义含 fromJson 的模型;实现返回 Future<Model> 的请求方法;GET 追加查询参数,POST/PUT 设置 'Content-Type': 'application/json; charset=UTF-8' 并附带 jsonEncode 后的请求体,DELETE 在 200 时返回空模型实例;校验 statusCode 并对失败抛异常,不要在失败时返回 null,否则 FutureBuilder 无法进入错误态并一直显示加载;用 FutureBuilder 结合 snapshot.hasData、snapshot.hasError 与默认 CircularProgressIndicator 接入界面;compute 的解析函数须为顶层函数或静态方法。
适用场景:任意需要与 REST API 交互的 Flutter 应用,尤其是响应数据量大、需要后台解析的场景。
限制:资料未提供具体错误类型定义、超时或重试策略以及价格信息,暂未提供。