1.网络,导入Dio库,dio: 4.0.0 ,注意要用空格,不能碰到边界。 2.dio网络请求:
//根据需要传入对应的参数
Dio().get(url, queryParameters: {"type": type, "key": key});
3.回调
typedef RequestCallBack = void Function(Map data);
//请求完成后根据得到的数据执行回调
static Future<Response> getData(RequestCallBack callBack) async{
String url = "https://v.juhe.cn/toutiao/index";
String key = "4c52313fc9247e5b4176aed5ddd56ad7";
String type = "keji";
print("开始请求数据");
var map = Map<String,String>();
map.putIfAbsent("111", () => "222");
map.putIfAbsent("222", () => "333");
Response response = await Dio().get(url, queryParameters: {"type": type, "key": key});
print("请求完成");
callBack(map);
return response;
}
//
HttpRequest.getData((Map map){map.forEach((key, value) {print("key:${key},value:${value}");});});
4.异步:async 、await ,await 的代码块会阻塞后面的代码执行,直到代码块返回需要的对象。Future可以return任意类型,可以看成泛型。 5.flutter中3种网络请求来源:学习来源
|