Makes a server POST request with the specified data encoded as form data.
This is roughly the POST equivalent of getString. This method is similar to sending a FormData object with broader browser support but limited to String values.
If data is supplied, the key/value pairs are URI encoded with
Uri.encodeQueryComponent and converted into an HTTP query string.
Unless otherwise specified, this method appends the following header:
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Here's an example of using this method:
var data = { 'firstName' : 'John', 'lastName' : 'Doe' };
HttpRequest.postFormData('/send', data).then((HttpRequest resp) {
  // Do something with the response.
});
See also:
Source
static Future<HttpRequest> postFormData(String url, Map<String, String> data,
    {bool withCredentials, String responseType,
    Map<String, String> requestHeaders,
    void onProgress(ProgressEvent e)}) {
  var parts = [];
  data.forEach((key, value) {
    parts.add('${Uri.encodeQueryComponent(key)}='
        '${Uri.encodeQueryComponent(value)}');
  });
  var formData = parts.join('&');
  if (requestHeaders == null) {
    requestHeaders = <String, String>{};
  }
  requestHeaders.putIfAbsent('Content-Type',
      () => 'application/x-www-form-urlencoded; charset=UTF-8');
  return request(url, method: 'POST', withCredentials: withCredentials,
      responseType: responseType,
      requestHeaders: requestHeaders, sendData: formData,
      onProgress: onProgress);
}