Flutter 如何使用 http存取 REST API 的資料

Flutter是一個使用Dart語言開發的跨平台UI框架,有許多方法可以使用http來存取REST API資料。以下是一個常見的示例:

 1. 首先需要將http庫添加到Flutter應用程式中。在您的專案中的pubspec.yaml檔案中添加以下行:

dependencies:

  http: ^0.12.0+4

2. 在您的代碼中,導入http庫並使用get()方法來獲取數據:


import 'package:http/http.dart' as http;

 Future<List<dynamic>> fetchData() async {

  var response = await http.get(url); // url為API Endpoint

  if (response.statusCode == 200) {

    return json.decode(response.body);

  } else {

    throw Exception('Failed to load data');

  }

}


3. 當您使用了上述代碼,您將會獲取到一個API Endpoint所返回的JSON格式數據,您可以將數據轉換為您應用所需要的任何形式。

 這只是一個簡單的示例,使用http庫僅僅是點擊數據存取的一個方面。您還可以使用其他選項,例如處理打包和解包數據,控制HTTP請求的超時和重試策略等等。希望這個示例有幫助! 



下面是一個使用HTTP的POST方法從Flutter應用程序中存取REST API的資料示例,該示例使用http庫向APIEndpoint發送POST請求:


import 'dart:convert';

import 'package:http/http.dart' as http;

 Future<http.Response> postData(Map<String, dynamic> data) async {

  final url = 'https://example.com/your-api-endpoint';// API Endpoint URL

  final headers = <String, String>{

    'Content-Type': 'application/json', // 設定請求的Content-Type

    'Accept': 'application/json', // 設定API Endpoint回應的Content-Type

  };

  final body = jsonEncode(data); // 將資料轉換為JSON格式

  // 使用http庫向API Endpoint發送POST請求

  final response = await http.post(url, headers: headers, body: body);

  return response;

}


在上述示例中, postData 函數接受一個Map對象作為輸入。使用 jsonEncode() 方法將它編碼為JSON格式。然後,使用http庫的post() 方法向API Endpoint發送POST請求,該方法需要傳入API Endpoint的URL和參數,以及可選的標頭資訊。 

 

使用http庫時,需要確保應用程序具有適當的權限,以便存取目標APIEndpoint。該程式碼還需要使用async/await語法來處理API Endpoint發送POST請求的非同步等待。


留言

這個網誌中的熱門文章

flutter 使用 ToastDialog 範例

[flutter]flutter如何防止GPS偽定位

ScaffoldMessenger 範例