我们在上一章回中介绍了创建调色板相关的内容,本章回中将介绍 网络操作.闲话休提,让我们一起Talk Flutter吧。
概念介绍
我们在本章回中介绍的网络操作主要是Http网络操作,这些操作包含GET,POST,DELETE等Http相关的操作。
Dart语言的IO库提供了HttpClient
类来实现Http相关的网络操作,不过使用相对复杂一些,因此出现了一些提供网络操作的库,这些库封装了HttpClient
类,同时提供了网络操作相关的接口给开发者使用,使用库提供的接口进行网络操作十分方便。常用的库有Dart官方提供的http
和Flutter中文社区提供Dio
.本章回中重点介绍Dio库的使用方法。
使用方法
- 创建dio对象,并且设置网址,超时等待网络参数;
- 使用dio对象的get()方法发起GET请求;
- 在get()方法返回的结果中获取GET请求的结果;
我们在这里只列出了GET请求的使用方法,其它Http相关的操作与GET类似,只是使用的方法不同。此外,get()
方法返回的是Future
对象,获取GET请求的结果可以通过then()
方法实现,如果GET请求的操作发生了错误,那么可以通过onError()
方法获取错误信息。明白使用方法后,我们通过示例代码来演示网络操作。
示例代码
var _mDio = Dio();
var _getType = "https://httpbin.org/get";
_getRequest() {
_mDio.get(_getType).then((value) {
debugPrint(value.toString());
});
}
上面的代码中把GET请求操作封装成了一个独立的方法,把该方法赋值给按钮的onPress属性后就可以在点击按钮时发起GET请求。
示例代码中把获取到的GET请求结果通过日志打印到了终端窗口中,编译并且运行上面的程序就可以在终端窗口中看到GET请求的结果。此外,示例程序中没有进行错误处理,大家可以在then()
方法后面调用onError()
方法来处理GET请求过程中发生的错误,这种连续的调用就是链式调用,这是Future
提供的功能。
看官们,与网络操作相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!