flutter如何使用http库

“刚接触Flutter开发,想用http库发送网络请求但不太清楚具体步骤。请问在Flutter中如何使用http库实现GET/POST请求?需要添加哪些依赖?能否给一个简单的代码示例说明如何发送请求并处理响应数据?”

2 回复

Flutter使用http库需先添加依赖:http: ^0.13.4。然后导入package:http/http.dart,使用get()post()方法发送请求,处理返回的Response对象即可。

更多关于flutter如何使用http库的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter 中使用 http 库发送网络请求的步骤如下:

1. 添加依赖

pubspec.yaml 文件中添加 http 库依赖:

dependencies:
  http: ^1.1.0

运行 flutter pub get 安装依赖。

2. 导入包

在 Dart 文件中导入:

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

3. 发送 HTTP 请求

支持 GET、POST、PUT、DELETE 等方法。

GET 请求示例:

Future<void> fetchData() async {
  final response = await http.get(Uri.parse('https://jsonplaceholder.typicode.com/posts/1'));
  if (response.statusCode == 200) {
    print('响应数据:${response.body}');
  } else {
    print('请求失败:${response.statusCode}');
  }
}

POST 请求示例:

Future<void> postData() async {
  final response = await http.post(
    Uri.parse('https://jsonplaceholder.typicode.com/posts'),
    headers: {'Content-Type': 'application/json'},
    body: jsonEncode({'title': 'Flutter HTTP', 'body': '测试内容'}),
  );
  print('响应状态:${response.statusCode}');
}

4. 处理响应

  • response.body:响应体(字符串格式)。
  • response.statusCode:HTTP 状态码(如 200 表示成功)。
  • 使用 jsonDecode() 解析 JSON 数据(需导入 dart:convert)。

5. 错误处理

使用 try-catch 捕获异常:

try {
  final response = await http.get(Uri.parse('https://invalid.url'));
} catch (e) {
  print('请求异常:$e');
}

完整示例

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

Future<void> main() async {
  final response = await http.get(Uri.parse('https://jsonplaceholder.typicode.com/posts/1'));
  if (response.statusCode == 200) {
    final data = jsonDecode(response.body);
    print('帖子标题:${data['title']}');
  } else {
    print('请求失败');
  }
}

注意事项

  • android/app/src/main/AndroidManifest.xml 中确保已添加网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    
  • iOS 默认支持网络请求,无需额外配置。

通过以上步骤即可在 Flutter 中完成基本的 HTTP 请求操作。

回到顶部