在Flutter项目中,可以使用http包来进行网络请求。在pubspec.yaml文件中添加http包的依赖。
使用http包的get、post、put等方法创建请求。例如,使用get方法创建一个请求:
import 'package:http/http.dart' as http;
Future<http.Response> fetchAlbum() {
return http.get(Uri.parse('https://jsonplaceholder.typicode.com/albums/1'));
}
使用异步方法发送请求,并处理返回的响应。例如,使用FutureBuilder来处理异步请求的响应:
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
Future<http.Response> fetchAlbum() {
return http.get(Uri.parse('https://jsonplaceholder.typicode.com/albums/1'));
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: Scaffold(
appBar: AppBar(
title: Text('Flutter Demo'),
),
body: Center(
child: FutureBuilder<http.Response>(
future: fetchAlbum(),
builder: (BuildContext context, AsyncSnapshot<http.Response> snapshot) {
if (snapshot.hasData) {
return Text(snapshot.data.body);
} else if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
} else {
return CircularProgressIndicator();
}
},
),
),
),
);
}
}
在以上代码中,FutureBuilder用于处理异步请求的响应。根据响应的状态显示相应的UI界面,例如显示请求的结果、错误信息或加载指示器。