flutter http請求的幾種方式

1.Http

  1. 導入依賴
dependencies:
  http: ^0.12.1
  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}");

    });
  1. 日誌打印
    在這裏插入圖片描述

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內容,複製,修改類名。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章