模拟网络请求

2021-09-01  本文已影响0人  Jean_Lina
/// 模拟网络请求
Future loadData(String argu) {
  return Future(() {
    sleep(Duration(seconds: 2));
    return 'hello' + argu;
  });
}
//async、await
void loadData0()。async {
  var result1 = await loadData('argu1');
  print('result1 = $result1');

  var result2 = await loadData(result1);
  print('result2 = $result2');

  var result3 = await loadData(result2);
  print('result3 = $result3');
}

//then value
void loadData1() {
  loadData('argu1').then((result1) {
    print('result1 = $result1');
    return loadData(result1);
  }).then((result2) {
    print('result2 = $result2');
    return loadData(result2);
  }).then((result3) {
    print('result3 = $result3');
  });
}
class HttpConfig {
  //定义静态常量
  static const baseUrl = 'https://httpbin.org';
  static const timeOut = 5000;
}
import 'package:dio/dio.dart';
import 'package:douban/douban/http/http_config.dart';
//网络请求封装
class HttpRequest {
  static final BaseOptions options = BaseOptions(baseUrl: HttpConfig.baseUrl, connectTimeout: HttpConfig.timeOut);
  static final Dio dio = Dio(options);

  static Future<T> requst<T>(String url, {String method = 'get', Map<String, dynamic>? params, Interceptor? inter}) async {
    final options = Options(method: method);

    try {
      Response response = await dio.request<T>(url, queryParameters: params, options: options);
      return response.data;
    } on DioError catch (error) {
      return Future.error(error);
    }
  }
}
///get请求
void request1() {
  HttpRequest.requst('https://httpbin.org/get', params: {'name': 'why', 'age': 18}).then((value) => print('请求结果 $value'));
}
///post请求
void request2() {
  HttpRequest.requst('https://httpbin.org/post', method: 'post', params: {'name': 'why', 'age': 12}).then((value) => print('请求结果 $value'));
}
Future<void> requestNetwork() async {
  final dio = Dio();
  final respose = await dio.get('http://123.207.32.32:8000/api/v1/recommend');
  if (respose.statusCode == HttpStatus.ok) {
    print('请求成功 ${respose.statusCode}');
  } else {
    print('请求失败 ${respose.statusCode}');
  }
}
上一篇 下一篇

猜你喜欢

热点阅读