面试题答案
一键面试- 引入
http
库: 在pubspec.yaml
文件中添加http
依赖:
然后运行dependencies: http: ^0.13.4
flutter pub get
安装依赖。 - 关键代码片段:
import 'package:http/http.dart' as http; import 'dart:convert'; Future<String> fetchData() async { try { // 发起网络请求 final response = await http.get(Uri.parse('https://example.com/api/data')); if (response.statusCode == 200) { // 将响应数据解析为字符串 return utf8.decode(response.bodyBytes); } else { throw Exception('Failed to load data'); } } catch (e) { print('Error: $e'); throw Exception('Network request failed'); } }
- 代码解释:
import 'package:http/http.dart' as http;
:引入http
库,用于发起网络请求。import 'dart:convert';
:引入dart:convert
库,用于处理数据编码和解码。Future<String> fetchData() async
:定义一个异步函数fetchData
,返回一个Future<String>
,表示这个函数会异步返回一个字符串类型的数据。final response = await http.get(Uri.parse('https://example.com/api/data'));
:使用http.get
方法发起一个GET请求到指定的URL。await
关键字会暂停当前函数的执行,直到这个网络请求完成,这样可以避免阻塞主线程,保证界面不卡顿。if (response.statusCode == 200)
:检查响应状态码,如果是200,表示请求成功。return utf8.decode(response.bodyBytes);
:将响应的字节数据解码为UTF - 8编码的字符串并返回。catch (e)
:捕获请求过程中可能出现的异常,比如网络连接失败等,并打印错误信息,然后重新抛出异常,让调用者可以处理这个错误。