html json send object dart code example

Example 1: post json in flutter

import 'dart:async';
import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

Future<Album> createAlbum(String title) async {
  final http.Response response = await http.post(
    'https://jsonplaceholder.typicode.com/albums',
    headers: <String, String>{
      'Content-Type': 'application/json; charset=UTF-8',
    },
    body: jsonEncode(<String, String>{
      'title': title,
    }),
  );

  if (response.statusCode == 201) {
    return Album.fromJson(jsonDecode(response.body));
  } else {
    throw Exception('Failed to create album.');
  }
}

class Album {
  final int id;
  final String title;

  Album({this.id, this.title});

  factory Album.fromJson(Map<String, dynamic> json) {
    return Album(
      id: json['id'],
      title: json['title'],
    );
  }
}

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  MyApp({Key key}) : super(key: key);

  @override
  _MyAppState createState() {
    return _MyAppState();
  }
}

class _MyAppState extends State<MyApp> {
  final TextEditingController _controller = TextEditingController();
  Future<Album> _futureAlbum;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Create Data Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Create Data Example'),
        ),
        body: Container(
          alignment: Alignment.center,
          padding: const EdgeInsets.all(8.0),
          child: (_futureAlbum == null)
              ? Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    TextField(
                      controller: _controller,
                      decoration: InputDecoration(hintText: 'Enter Title'),
                    ),
                    ElevatedButton(
                      child: Text('Create Data'),
                      onPressed: () {
                        setState(() {
                          _futureAlbum = createAlbum(_controller.text);
                        });
                      },
                    ),
                  ],
                )
              : FutureBuilder<Album>(
                  future: _futureAlbum,
                  builder: (context, snapshot) {
                    if (snapshot.hasData) {
                      return Text(snapshot.data.title);
                    } else if (snapshot.hasError) {
                      return Text("${snapshot.error}");
                    }

                    return CircularProgressIndicator();
                  },
                ),
        ),
      ),
    );
  }
}

Example 2: dart server listen how to recive json data

import 'dart:io';import 'dart:convert';String _host = InternetAddress.loopbackIPv4.host;Future main() async {  var server = await HttpServer.bind(_host, 4049);  await for (var req in server) {    ContentType contentType = req.headers.contentType;    HttpResponse response = req.response;    if (req.method == 'POST' &&        contentType?.mimeType == 'application/json' /*1*/) {      try {        String content =            await utf8.decoder.bind(req).join(); /*2*/        var data = jsonDecode(content) as Map; /*3*/        var fileName = req.uri.pathSegments.last; /*4*/        await File(fileName)            .writeAsString(content, mode: FileMode.write);        req.response          ..statusCode = HttpStatus.ok          ..write('Wrote data for ${data['name']}.');      } catch (e) {        response          ..statusCode = HttpStatus.internalServerError          ..write('Exception during file I/O: $e.');      }    } else {      response        ..statusCode = HttpStatus.methodNotAllowed        ..write('Unsupported request: ${req.method}.');    }    await response.close();  }}

Tags:

Misc Example