В этом руководстве мы рассмотрим, как получать данные и отправлять параметры с помощью Dio, мощного HTTP-клиента для Flutter. Dio предоставляет простой и интуитивно понятный API для выполнения сетевых запросов, что делает его отличным выбором для обработки выборки данных и передачи параметров в ваших приложениях Flutter. Мы рассмотрим несколько методов с примерами кода, чтобы продемонстрировать различные подходы к получению данных и отправке параметров с помощью Dio.
Методы:
- Запрос 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());
}
}
- Запрос 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());
}
}
- 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());
}
}
- 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());
}
}
- Добавление заголовков.
Вы также можете добавлять собственные заголовки к своим запросам, используя свойство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.