校园网站建设网,重庆网站seo分析,律师关键词推广,沂源网站设计文章目录 概念介绍使用方法使用默认的转换器自定义转换器 示例代码经验分享 我们在上一章回中介绍了如何打造一个网络框架相关的内容#xff0c;本章回中将介绍
如何使用dio的转换器.闲话休提#xff0c;让我们一起Talk Flutter吧。 概念介绍
转换器主要用来转… 文章目录 概念介绍使用方法使用默认的转换器自定义转换器 示例代码经验分享 我们在上一章回中介绍了如何打造一个网络框架相关的内容本章回中将介绍
如何使用dio的转换器.闲话休提让我们一起Talk Flutter吧。 概念介绍
转换器主要用来转换数据类型或者内容它既可以转换客户端发送给服务器的数据也可以转换服务器回复给客户端的数据。我们可以自己实现一个转换器不过dio库提供了转换器transform。本章回中将介绍它的使用方法。
使用方法
使用默认的转换器
在dio库中提供了默认的转换器BackgroundTransformer我们可以直接使用它:
mDio.transformer.transformRequest();这里的mDio是dio类型的对象。
自定义转换器
网络库dio提供了转换器:transform它是一个抽象类我们想使用转换器时只需要继承该类就可以不过在继承时需要实现该类的两个抽象方法详细如下
transformRequest:该方法用来转换客户端发送给服务器的数据transformResponse该方法用来转换服务器回复给客户端的数据;
我们只是概要性地介绍转换器中的抽象方法详细内容可以参考下面的示例代码。
示例代码
///自定义的转换器可以使用dio的提供的SyncTransformer,
class CustomTransform extends BackgroundTransformer{///在PUT,POST和PATCH请求中才会回调overrideFutureString transformRequest(RequestOptions options) {// TODO: implement transformRequestprint(transformRequest running);return super.transformRequest(options);}///除了PUT,POST和PATCH请求外GET请求中也会回调overrideFuture transformResponse(RequestOptions options, ResponseBody response) {// TODO: implement transformResponseprint(transformResponse running);///转换返回的数据 为string: response// return Future.value(response);///不转换数据return super.transformResponse(options, response);}
}我们在示例代码中自定义了一个转换器CustomTransform,它是BackgroundTransformer转换器的子类其实也可以直接继承Transformer这个抽象类只是需要自己动手实现抽象方法而不是像示例代码中一样直接调用父类的相关方法。
自己实现Transformer的抽象方法时可以参考SyncTransformer类的源代码该类直接继承自Transformer类而且它还是默认转换器BackgroundTransformer类的父类。
经验分享
转换器在实际项目中使用的的概率比较小不过还是建议大家掌握它。此外,还有一些经验和大家分享
转换器只有在PUT,POST和PATCH这些Http请求中才有效果,因为只有这些请求中才带有数据。转换器中分请求转换器和响应转换器两个回调方法请求转换器在请求拦截器后执行响应转换器在响应拦截器前执行。转换器的功能和拦截器类似使用方法也类似加一个转换器的目的是为了在代码上与拦截器解耦。
看官们关于如何使用dio的转换器相关的内容就介绍到这里欢迎大家在评论区交流与讨论!