Чтобы выполнить запрос HTTP POST во Flutter, вы можете использовать различные методы и пакеты. Вот несколько вариантов:
-
Использование пакета
http:import 'package:http/http.dart' as http; Future<void> postData() async { var url = Uri.parse('https://example.com/api/endpoint'); var response = await http.post(url, body: {'key': 'value'}); if (response.statusCode == 200) { print('POST request succeeded'); // Handle the response data } else { print('POST request failed'); } } -
Использование пакета
dio:import 'package:dio/dio.dart'; Future<void> postData() async { var dio = Dio(); var url = 'https://example.com/api/endpoint'; var response = await dio.post(url, data: {'key': 'value'}); if (response.statusCode == 200) { print('POST request succeeded'); // Handle the response data } else { print('POST request failed'); } } -
Использование пакета
flutter_bloc(для управления состоянием):// Define an event class PostDataEvent extends Equatable { final Map<String, dynamic> data; const PostDataEvent(this.data); @override List<Object?> get props => [data]; } // Define a bloc class MyBloc extends Bloc<PostDataEvent, PostDataState> { MyBloc() : super(PostDataInitial()); @override Stream<PostDataState> mapEventToState(PostDataEvent event) async* { if (event is PostDataEvent) { try { var url = 'https://example.com/api/endpoint'; var response = await http.post(url, body: event.data); if (response.statusCode == 200) { yield PostDataSuccess(); } else { yield PostDataFailure(); } } catch (e) { yield PostDataFailure(); } } } } // Dispatch the event bloc.add(PostDataEvent({'key': 'value'}));
Это всего лишь несколько примеров. Существуют и другие пакеты и методы для выполнения HTTP-запросов POST во Flutter. Не забудьте добавить необходимые зависимости в файл pubspec.yaml.