Комплексное руководство по получению данных и отправке параметров во Flutter с использованием Dio

В этом руководстве мы рассмотрим, как получать данные и отправлять параметры с помощью Dio, мощного HTTP-клиента для Flutter. Dio предоставляет простой и интуитивно понятный API для выполнения сетевых запросов, что делает его отличным выбором для обработки выборки данных и передачи параметров в ваших приложениях Flutter. Мы рассмотрим несколько методов с примерами кода, чтобы продемонстрировать различные подходы к получению данных и отправке параметров с помощью Dio.

Методы:

  1. Запрос GET без параметров:
    Чтобы получить данные с помощью запроса GET без каких-либо параметров, вы можете использовать следующий код:
import 'package:dio/dio.dart';
void fetchData() async {
  try {
    Response response = await Dio().get('https://api.example.com/data');
    print(response.data);
  } catch (e) {
    print(e.toString());
  }
}
  1. Запрос GET с параметрами запроса.
    Чтобы отправить параметры запроса с помощью запроса GET, вы можете использовать свойство queryParameters. Вот пример:
void fetchDataWithQueryParams() async {
  try {
    Response response = await Dio().get('https://api.example.com/data',
        queryParameters: {'param1': 'value1', 'param2': 'value2'});
    print(response.data);
  } catch (e) {
    print(e.toString());
  }
}
  1. POST-запрос с телом JSON.
    Чтобы отправить параметры в теле запроса POST в формате JSON, вы можете использовать свойство data. Вот пример:
void sendData() async {
  try {
    Response response = await Dio().post('https://api.example.com/data',
        data: {'param1': 'value1', 'param2': 'value2'});
    print(response.data);
  } catch (e) {
    print(e.toString());
  }
}
  1. POST-запрос с данными формы.
    Чтобы отправить параметры в виде данных формы в POST-запросе, вы можете использовать класс FormDataиз Dio. Вот пример:
import 'package:dio/dio.dart';
void sendFormData() async {
  try {
    FormData formData = FormData.fromMap({
      'param1': 'value1',
      'param2': 'value2',
    });
    Response response =
        await Dio().post('https://api.example.com/data', data: formData);
    print(response.data);
  } catch (e) {
    print(e.toString());
  }
}
  1. Добавление заголовков.
    Вы также можете добавлять собственные заголовки к своим запросам, используя свойство options. Вот пример:
void fetchDataWithHeaders() async {
  try {
    Dio dio = Dio();
    dio.options.headers['Authorization'] = 'Bearer your-token';
    Response response = await dio.get('https://api.example.com/data');
    print(response.data);
  } catch (e) {
    print(e.toString());
  }
}

В этом уроке мы рассмотрели различные методы получения данных и отправки параметров с помощью Dio во Flutter. Мы рассмотрели запросы GET без параметров, запросы GET с параметрами запроса, запросы POST с телом JSON, запросы POST с данными формы и добавление пользовательских заголовков к запросам. Эти примеры должны дать вам прочную основу для выполнения сетевых запросов и обработки данных в ваших приложениях Flutter с помощью Dio.