第九十一回 使用dio中的拦截器


我们在上一章回中介绍了"对dio库进行封装"相关的内容,本章回中将介绍 如何使用dio中的拦截器.闲话休提,让我们一起Talk Flutter吧。

概念介绍

我们在本章回中介绍的拦截器主要用来在网络操作过程中获取相关的信息,它可以拦截网络操作过程中的数据,这样有助于开发人员分析和调试程序。在其它网络库中也有拦截器,比如Android平台上的Okhttp和Retrofit都有拦截器。dio也提供了相应的拦截器,本章回中将介绍如何使用dio提供的拦截器。

使用方法

dio库提供的拦截器简单易用,我们只需要创建一个拦截器对象然后通过dio对象的add()方法把拦截器添加到dio对象就可以使用拦截器了。相对复杂是的创建dio拦截器,我们需要创建InterceptorsWrapper类型的对象,该类的构造方法中包含三个可选参数,详细如下:

  • onRequest:该参数表示拦截网络操作中与请求操作相关的内容;
  • onResponse: 该参数表示拦截网络操作中服务器返回的相关数据;
  • onError: 该参数表示拦截网络操作过程中发生的错误;

这三个参数的类型都是方法类型,我们需要创建一个与其类型匹配的对象才能给这些参数赋值,具体的赋值操作可以参考示例程序中的代码。

示例代码

///添加拦截器
Interceptor _interceptor = InterceptorsWrapper(
  onRequest: (options,handler) {
    // print('request: '+ options.toString());
    print('request: '+ options.toString());
    return handler.next(options);
    },
  onResponse: (response,handler){
    print('response: ' + response.toString());
    return handler.next(response);
    },
  onError: (error,handler) {
    print('response: ' + error.toString());
    return handler.next(error);
    },
);
mdio.interceptors.add(_interceptor);

在上面的代码中,我们把拦截器获取到的数据通过日志方式打印到终端中,在实际项目大家可以对数据做相关的处理。编译并且运行上面的程序,可以看到终端中输出数据,这样数据都是网络操作相关的数据。我在这里就不演示程序的运行结果了,建议大家自己动手去实践。

看官们,关于"使用dio中的拦截器"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值