关于异步get请求(async)
pubspec.yaml
dependencies:
dio: any
json_annotation: ^0.2.3
dev_dependencies:
build_runner: ^0.9.0
json_serializable: ^0.5.4
新建一个用于连接的类
import 'dart:convert';
import 'package:dio/dio.dart';
void getTest() async{
Response response;
var dio = new Dio();
response = await dio.get("https://www.test.com/public/newhome/get/10007");
if (response != null) {
var res2Json = json.encode(response.data);
Map<String,dynamic> map=json.decode(res2Json);
print("你好"+map["msg"]);
}
}
在网上找了一个执行请求的实例
import 'package:flutter/material.dart';
import 'dart:convert';
import 'dart:io';
void main() => runApp(MyApp());
var hotMovies =
'https://api.douban.com/v2/movie/in_theaters?apikey=0df993c66c0c636e29ecbb5344252a4a';
class MyApp extends StatelessWidget {
var movies = '';
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'HttpClient请求示例',
theme: new ThemeData(
primaryColor: Colors.white,
),
home: new Scaffold(
appBar: new AppBar(
title: new Text('HttpClient请求示例'),
),
body: new Column(children: <Widget>[
new RaisedButton(
child: new Text('获取电影列表'), onPressed: getFilmList),
new Expanded(
child: new Text('$movies'),
)
]),
));
}
void getFilmList() async {
try {
HttpClient httpClient = new HttpClient();
HttpClientRequest request = await httpClient.getUrl(Uri.parse(hotMovies));
HttpClientResponse response = await request.close();
var result = await response.transform(utf8.decoder).join();
movies = result;
print('movies'+result);
httpClient.close();
}catch(e){
print('请求失败:$e');
}
}
}