首页 > IT职业 > IT职场 > Flutter 网络请求库http
集成http库
https://pub.dartlang.org/packages/http
添加依赖
dependencies:
http: ^0.12.0
安装
flutter packages get
导入
import 'package:http/http.dart' as http;
get(dynamic url, { Map headers }) → Future post(dynamic url, { Map headers, dynamic body, Encoding encoding }) → Future http.post('https://flutter-cn.firebaseio.com/products.json',
body: json.encode(param),encoding: Utf8Codec())
.then((http.Response response) {
final Map responseData = json.decode(response.body);
//处理响应数据
}).catchError((error) {
print('$error错误');
});
返回值都用到Dart Futures, 类似JavaScript中的promise
官方推荐使用async/await来调用网络请求
void addProduct(Product product) async {
Map param = {
'title': product.title,
'description': product.description,
'price': product.price
};
try {
final http.Response response = await http.post(
'https://flutter-cn.firebaseio.com/products.json',
body: json.encode(param),
encoding: Utf8Codec());
final Map responseData = json.decode(response.body);
print('$responseData 数据');
} catch (error) {
print('$error错误');
}
}
用 try catch来捕获错误
两种写法都可以,个人觉得第二种语法思路更明确.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1775/viewspace-2814796/ ,如需转载,请注明出处,否则将追究法律责任。