HTTPパッケージの使用方法

導入

まずパッケージをインストールする。

dart pub add http

実装

インポート

インポートする。

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

同時にjsonを扱うためのconvertもインポートする。

関数

HTTPが絡む関数を作成する際は、基本的に非同期で作成し、戻り値はFutureオブジェクトにする。

Future<void> _handleHttp() async {
	...
}

まず、Urlオブジェクトを作成する。

var url = Uri.https('www.googleapis.com');

次にリクエストをhttpパッケージのgetメソッドで送信する。

var response = await http.get(url)

ここでヘッダを付け加えることもできる。

var response = await http.get(url, headers: { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'ja,en;q=0.9,en-GB;q=0.8,en-US;q=0.7', 'Authorization': 'Basic Og==', 'Cache-Control': 'max-age=0', 'Connection': 'keep-alive', 'Host': '192.168.0.1', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0' 
});

最後に通信の可否をifで判断する。

if (response.statusCode == 200) {
	 var jsonResponse = convert.jsonDecode(response.body) as Map<String, dynamic>;
	 var itemCount = jsonResponse['totalItems'];
	 print('Number of books about http: $itemCount.');
} else {
	print('Request failed with status: ${response.statusCode}.');
}
 

ステータスコード200番とは、通信が正しく行われて返答された場合の成功コードである。