1.Http
- 導入依賴
dependencies:
http: ^0.12.1
- 代碼書寫
然後在代碼里加入
import 'package:http/http.dart' as http;
http.get("https://www.wanandroid.com/tree/json").then((value) {
print("test-http ${value.statusCode}");
print("test-http content ${value.body}");
});
- 日誌打印
2.HttpClient
1.導入包
import 'dart:convert';
import 'dart:io';
2.代碼
void testHttp() async{
HttpClient httpClient = HttpClient();
HttpClientRequest httpClientRequest = await httpClient.getUrl(Uri.parse("https://www.wanandroid.com/tree/json"));
HttpClientResponse response = await httpClientRequest.close();
var result = await response.transform(utf8.decoder).join();
print("uuu=${result}");
httpClient.close();
}
3.日誌
3.Dio
dio 很強大,支持Restful API FormData、攔截器、請求取消、Cookie管理、文件上傳下載、超時、自定義適配器。
1.依賴導入
dependencies:
dio: ^3.0.9
2.代碼書寫
///獲取首頁列表數據,future
getHomeArticleListDdata(int _page) async {
try {
Response response =
await dio.get(Apis.HOME_ARTICLE_LIST + "/$_page/json");
var statusCode = response.statusCode;
if (statusCode == 200) {
return response;
} else {
throw Exception('網絡異常:' + response.statusMessage);
}
} catch (e) {
print(e);
}
}
調用這個方法
void getHomeListData() async {
await ApiService().getHomeArticleListDdata(_page).then((value) {
//解碼得到數據
var data = json.decode(value.toString());
setState(() {
_articleModel = ArticleModel.fromJson(data);
});
});
}
4.json to Dart json數據轉換成bean
https://www.devio.org/io/tools/json-to-dart/
在網頁內輸入json內容,轉換成bean內容,複製,修改類名。