Методы HTTP POST во Flutter: подробное руководство

Чтобы выполнить запрос HTTP POST во Flutter, вы можете использовать различные методы и пакеты. Вот несколько вариантов:

  1. Использование пакета 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');
     }
    }
  2. Использование пакета 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');
     }
    }
  3. Использование пакета 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.