Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtSpApPjs 177 of 224 menu
◀ ▶

Отправка JSON в Dart

Создание записи на API часто требует метода POST и тела в формате JSON. Текст тела получают через jsonEncode, а в запросе задают заголовок "Content-Type: application/json".

Учебный "/posts" на typicode принимает черновик с userId, title и body. Ответ можно прочитать как строку или разобрать в тип с полем id:

import 'package:http/http.dart' as http; import 'dart:convert'; class SavedPost { SavedPost(this.id, this.title); final int id; final String title; factory SavedPost.fromJson(Map<String, Object?> json) { return SavedPost( json['id'] as int, json['title'] as String, ); } } void main() async { var draft = { 'userId': 1, 'title': 'Note', 'body': 'Short text', }; var response = await http.post( Uri.parse( 'https://jsonplaceholder.typicode.com/posts', ), headers: {'Content-Type': 'application/json'}, body: jsonEncode(draft), ); var raw = jsonDecode(response.body); if (raw is Map<String, Object?>) { var saved = SavedPost.fromJson(raw); print(saved.id); print(saved.title); } }

Сервис httpbin.org/post возвращает принятое тело внутри JSON-ответа. Массив чисел кодируют так же, как одиночный объект, и отправляют одной строкой:

import 'package:http/http.dart' as http; import 'dart:convert'; void main() async { var payload = jsonEncode([1, 2, 3, 4, 5]); var response = await http.post( Uri.parse('https://httpbin.org/post'), headers: {'Content-Type': 'application/json'}, body: payload, ); print(response.body); }

Сформируйте JSON-массив чисел от 1 до 5, отправьте его POST на "https://httpbin.org/post" с типом "application/json". Выведите тело ответа целиком или фрагмент с принятыми данными.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить