flutter 每天一个知识点 网络请求 2025-07-17
2025-07-16 本文已影响0人
胡修波
步骤
1、创建客户端
2、创建request ---> url uri
3、获得response
4、客户端进行关闭
一、dart中自带网络库
void main(List<String> arguments) async {
String uri = "http://weather.com.cn/data/sk/101010100.html";
await httpClient(uri);
}
/// dart中自带网络库
Future<void> httpClient(String uri) async {
HttpClient client = HttpClient();
HttpClientRequest request = await client.getUrl(Uri.parse(uri));
HttpClientResponse response = await request.close();
print("huxiubo -----> ${response.statusCode}");
var result = await response.transform(utf8.decoder).join();
print("huxiubo -----> $result");
}
二、dio 国内常用(最简单,功能强大)
void main(List<String> arguments) async {
String uri = "http://weather.com.cn/data/sk/101010100.html";
await dioRequest(uri);
}
Future<void> dioRequest(String uri) async {
Dio dio = Dio();
var result = await dio.get(uri); // await dio.getUri(Uri.parse(uri));
print("====> ${result}");
}
三、flutter 推荐 http (用的最多)
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:http/http.dart';
void main(List<String> arguments) async {
// 1、创建客户端
// 2、创建request ---> url uri
// 3、获得response
// 4、客户端进行关闭
String uri = "http://weather.com.cn/data/sk/101010100.html";
await httpMethod(uri);
}
Future<void> httpMethod(String uri) async {
http.Client client = http.Client();
Response response = await client.get(Uri.parse(uri));
if (response.statusCode == 200) {
String text = utf8.decode(response.bodyBytes);
// 另一种方法
// Utf8Decoder utf8decoder = const Utf8Decoder(); //fix 中文乱码
// String bodyString = utf8decoder.convert(response.bodyBytes);
print(text);
}
}