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); }