/// 模拟网络请求
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}');
}
}
网友评论