美文网首页
模拟网络请求

模拟网络请求

作者: Jean_Lina | 来源:发表于2021-09-01 14:20 被阅读0次
/// 模拟网络请求
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}');
  }
}

相关文章

  • Future函数使用

    Future常用方法: 多个网络请求同时进行: await、async模拟异步网路请求: Future模拟异步网络请求:

  • 模拟网络请求

  • 修改苹果的IOS系统下会出现手动设置标题失效

    实现思路,在网页加载完成之后手动模拟一次网络请求,设置标题 实现思路,在网页加载完成之后手动模拟一次网络请求,设置...

  • 如何模拟网络请求?

    平时总喜欢通过脚本来完成一些操作,这样就可以达到一键操作的效果,而不用每次打开某个网站然后执行一些操作 那么如何才...

  • 爬虫入门基础

    爬虫的入门基础 什么是爬虫? 网络爬虫(又被成为网页蜘蛛,网络机器人),就是模拟客户端发起网络请求,接收请求的响应...

  • Python爬虫基础教程(一)

    一、爬虫的概念: 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端发送网络请求,接收请求响应, 一种按照...

  • 第五章 爬虫

    爬虫是指使用代码模拟用户批量发送网络请求,批量获取数据的行为。 axios,是一个基于promise的网络请求库,...

  • SpringBoot开发接口

    1、模拟get请求2、模拟get请求返回cookie3、模拟get请求携带cookie信息4、模拟get请求携带参...

  • Charles--优秀的生产力工具

    Charles 又名“青花瓷”,以其ICON得名。 网络请求抓包、模拟网络延迟、修改网络参数(request\re...

  • 普通爬虫笔记

    通用爬虫 爬虫的定义 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端发送网络请求,接收请求响应,一种按照一...

网友评论

      本文标题:模拟网络请求

      本文链接:https://www.haomeiwen.com/subject/npsxwltx.html