Sample code for 30+ languages & platforms
Dart Requires Chilkat v11.5.0+

curl POST with JSON Input and JSON Output

See more CURL Examples

Demonstrates running a simple curl command with JSON input and JSON output.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // Run the following curl command

  //  curl -X POST https://httpbin.org/post \
  //       -H "Content-Type: application/json" \
  //       -d '{
  //             "title": "foo",
  //             "body": "bar",
  //             "userId": 1
  //           }'

  // The backslashes at the end of lines are not required.  Chilkat ignores them if present.
  final sbTargetCurl = CkStringBuilder();
  sbTargetCurl.appendLn(' curl -X POST https://httpbin.org/post \\');
  sbTargetCurl.appendLn('      -H "Content-Type: application/json" \\');
  sbTargetCurl.appendLn('      -d \'{');
  sbTargetCurl.appendLn('            "title": "foo",');
  sbTargetCurl.appendLn('            "body": "bar",');
  sbTargetCurl.appendLn('            "userId": 1');
  sbTargetCurl.appendLn('          }\'');

  final httpCurl = CkHttpCurl();

  // Run the curl command.
  try {
    httpCurl.doYourThing(sbTargetCurl.getAsString());
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final responseJson = CkJsonObject();
  responseJson.emitCompact = false;

  httpCurl.getResponseJson(responseJson);

  var statusCode = httpCurl.statusCode;
  print('response status code: $statusCode');

  print(responseJson.emit());

  // Output:

  // response status code: 200
  // {
  //   "args": {},
  //   "data": "{\r\n            \"title\": \"foo\",\r\n            \"body\": \"bar\",\r\n            \"userId\": 1\r\n          }",
  //   "files": {},
  //   "form": {},
  //   "headers": {
  //     "Content-Length": "96",
  //     "Content-Type": "application/json",
  //     "Host": "httpbin.org",
  //     "X-Amzn-Trace-Id": "Root=1-69e8db8b-459b3bdf7b7a3bc749184968"
  //   },
  //   "json": {
  //     "body": "bar",
  //     "title": "foo",
  //     "userId": 1
  //   },
  //   "origin": "123.222.222.222",
  //   "url": "https://httpbin.org/post"
  // }

  // ----------------------------------------------------------------------------------
  // Another example:

  // curl -X POST https://postman-echo.com/post \
  //      -H "Content-Type: application/json" \
  //      -d '{"foo":"bar"}'

  final targetCurl = 'curl -X POST https://postman-echo.com/post -H "Content-Type: application/json" -d \'{"foo":"bar"}\'';

  // Run the curl command.
  try {
    httpCurl.doYourThing(targetCurl);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  httpCurl.getResponseJson(responseJson);

  statusCode = httpCurl.statusCode;
  print('response status code: $statusCode');

  print(responseJson.emit());

  // Output:

  // response status code: 200
  // {
  //   "args": {},
  //   "data": {
  //     "foo": "bar"
  //   },
  //   "files": {},
  //   "form": {},
  //   "headers": {
  //     "host": "postman-echo.com",
  //     "content-length": "13",
  //     "content-type": "application/json",
  //     "x-forwarded-proto": "https",
  //     "accept-encoding": "gzip, br"
  //   },
  //   "json": {
  //     "foo": "bar"
  //   },
  //   "url": "https://postman-echo.com/post"
  // }
}