Flutter开发之——网络请求-HttpClient
一 概述
- HttpClient是Flutter中默认的网络访问工具
- HttpClient可以分别对
get
和post
请求使用get
、getUrl
和post
、postUrl
方法 - 本文仅对HttpClient进行简单介绍,后见将介绍其他网络请求框架
二 网络请求中的几个类
flutter中网络请求的过程
2.1 HttpClient
- 执行网络请求的客户端
- 实例化时通过
var httpClient = new HttpClient();
- 可以发送get请求(get/getUrl)和post请求(post/postUrl)
2.2 Uri
1 | factory Uri( |
- scheme:如网络请求时为
http
或https
,文件请求时为file
- userInfo:权限组件的用户信息部分,此部分默认为空
- host:主机部分,不区分大小写
- port:端口号,http请求时为80,https请求时为443
- path:接口请求路径(方法)
- pathSegments:同path,只不过将path分段了
- queryParameters:请求参数
- query:同queryParameters,将queryParameters合并成一个
1 | var uri = Uri( |
2.3 HttpClientRequest
添加请求信息
- request.persistentConnection:支持请求的持久连接状态(默认true)
- request.headers:请求头
- request.cookies:cookies
2.4 HttpClientResponse
客户端连接的HTTP响应
- response.statusCode:状态码
三 请求接口
玩Android 开放API-登录
登录用户信息
- url:https://www.wanandroid.com/user/login
- username:wanandroidUser1
- password:123456
四 示例
4.1 分开请求
1 | void _httpClientPost1() async { |
4.2 链式请求
1 | void _httpClientPost2() { |
3.3 设置显示
1 | String _data; |
4.4 效果图
1 | I/flutter (13964): {"data":{"admin":false,"chapterTops":[],"coinCount":0,"collectIds":[],"email":"","icon":"","id":99295,"nickname":"wanandroidUser1","password":"","publicName":"wanandroidUser1","token":"","type":0,"username":"wanandroidUser1"},"errorCode":0,"errorMsg":""} |
五 参考
- Flutter-HttpClient class