Flutter网络请求插件networking的使用
Flutter网络请求插件networking的使用
networking
是一个为Dart编写的通用HTTP客户端,它支持类型化且无错误的请求。本文将详细介绍如何使用该库来发起网络请求。
如何使用
使用 networking
客户端来消费GitHub Raw API非常简单:
import 'dart:async';
import 'dart:io';
import 'package:networking/networking.dart';
void main() async {
// 创建一个GitHub仓库对象
final repository = NetworkingGitHubRepository(
user: 'dart-pacotes',
repoId: 'networking',
branch: 'master',
);
// 创建与GitHub Raw API交互的网络客户端
final networkingClient = RawGitHubNetworkingClient(
repository: repository,
);
// 定义要获取的文件路径
final endpoint = 'README.md';
// 发起GET请求并获取结果
final getEndpointResult = await networkingClient.get(endpoint: endpoint);
// 打印结果
print(getEndpointResult);
}
更多关于Flutter网络请求插件networking的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter网络请求插件networking的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
Flutter 中常用的网络请求插件包括 http
和 dio
。下面我将分别介绍这两个插件的使用方法。
1. 使用 http
插件进行网络请求
http
是 Flutter 官方推荐的网络请求插件,简单易用。
安装
在 pubspec.yaml
中添加依赖:
dependencies:
http: ^0.15.0
示例代码
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';
class HttpExample extends StatefulWidget {
[@override](/user/override)
_HttpExampleState createState() => _HttpExampleState();
}
class _HttpExampleState extends State<HttpExample> {
String _responseData = 'Loading...';
Future<void> fetchData() async {
final response = await http.get(Uri.parse('https://jsonplaceholder.typicode.com/posts/1'));
if (response.statusCode == 200) {
setState(() {
_responseData = jsonDecode(response.body)['title'];
});
} else {
setState(() {
_responseData = 'Failed to load data';
});
}
}
[@override](/user/override)
void initState() {
super.initState();
fetchData();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('HTTP Example'),
),
body: Center(
child: Text(_responseData),
),
);
}
}
void main() {
runApp(MaterialApp(
home: HttpExample(),
));
}
2. 使用 dio
插件进行网络请求
dio
是一个功能更强大的网络请求库,支持拦截器、文件上传、下载等功能。
安装
在 pubspec.yaml
中添加依赖:
dependencies:
dio: ^5.0.0
示例代码
import 'package:flutter/material.dart';
import 'package:dio/dio.dart';
class DioExample extends StatefulWidget {
[@override](/user/override)
_DioExampleState createState() => _DioExampleState();
}
class _DioExampleState extends State<DioExample> {
String _responseData = 'Loading...';
Future<void> fetchData() async {
try {
final dio = Dio();
final response = await dio.get('https://jsonplaceholder.typicode.com/posts/1');
setState(() {
_responseData = response.data['title'];
});
} catch (e) {
setState(() {
_responseData = 'Failed to load data: $e';
});
}
}
[@override](/user/override)
void initState() {
super.initState();
fetchData();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Dio Example'),
),
body: Center(
child: Text(_responseData),
),
);
}
}
void main() {
runApp(MaterialApp(
home: DioExample(),
));
}