Flutter网络数据获取插件fetch_api的使用
Flutter网络数据获取插件fetch_api的使用
fetch_api
是一个为Dart提供的与JavaScript Fetch API兼容的绑定,支持WebAssembly。它提供了丰富的功能来处理网络请求和响应,包括取消请求、读取不同格式的响应内容、流式传输等。
特性
- 完整的fetch选项/请求参数覆盖
- 通过
AbortController
取消请求 - 响应读取方式:
- 作为文本(
String
) - 作为
Blob
- 作为
Uint8List
的Stream
- 作为文本(
- 支持响应流式传输
- 请求流式传输(注意浏览器兼容性)
- 获取重定向状态
- 支持非
200
响应
关于fetch
和Request
的一些说明
fetch
和Request
具有相同的选项但有不同的语义。例如,fetch
的默认模式是no-cors
,而Request
的默认模式是cors
。因此,尽管它们可以互换使用,并且都继承自RequestInit
,但是针对fetch
函数和Request
构造函数的选项对象被设计为不同的扩展类型。
更多详情请参考MDN文档。
示例Demo
以下是一个简单的示例,展示了如何在Flutter应用中使用fetch_api
进行跨域请求并打印返回的数据:
import 'package:fetch_api/fetch_api.dart';
void main() async {
try {
// 发起一个简单的跨域请求
final response = await fetch(
'https://api.restful-api.dev/objects/1',
FetchOptions(
mode: RequestMode.cors, // 设置请求模式为CORS
),
);
if (!response.ok) {
print('请求失败,状态码:${response.status}');
return;
}
// 将响应转换为字符串并打印
String data = await response.text();
print('请求成功,返回的数据:$data');
} catch (e) {
print('发生错误:$e');
}
}
在这个示例中,我们首先导入了fetch_api
包,然后定义了一个异步的main
函数。在这个函数里,我们调用了fetch
方法发起一个GET请求到指定的URL,并设置了请求模式为cors
以允许跨域请求。接着检查响应的状态是否正常(即状态码在200-299之间),如果正常则将响应体转换成字符串并打印出来;否则打印错误信息。此外,还添加了异常捕获机制来处理可能发生的异常情况。
请注意,在实际项目中使用时,请根据您的需求调整URL和其他请求参数。
更多关于Flutter网络数据获取插件fetch_api的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复