Flutter 网络请求框架dio使用分析
import 'dart:ffi';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'dart:convert';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'hello',
home: Scaffold(
appBar: AppBar(
title: Text("网络请求dio "),
),
body: HomePage(),
),
);
}
}
class HomePage extends StatefulWidget {
HomePage({Key key}) : super(key: key);
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
String result = '发起请求';
@override
Widget build(BuildContext context) {
return Container(
child: Row(
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
FlatButton(
color: Colors.pink,
onPressed: () {
getHttp();
},
child: Text('ffhfh'),
),
SizedBox(
height: 50,
),
Expanded(child: Text('请求的数据$result')),
Text('$result.id')
],
),
],
),
);
}
void getHttp() async {
try {
Response response = await Dio().get("http://10.0.2.2:3000/user");
print(response);
var data = response.data;
List list = json.decode(data);
List<Bean> datas = list.map((b) => Bean.fromJson(b)).toList();
print('data ....lenght ${datas.length}');
setState(() {
result = data.toString();
});
} catch (e) {
print('diso ............' + e.toString());
}
}
}
AppBar
text
Container
img
Flexidble
Button
圆角图片 圆角头像
ListView.build