postFormData 静态方法
使用指定的数据作为表单数据进行服务器端 POST 请求。
这大致相当于 getString 的 POST 等价方法。该方法类似于发送一个 FormData 对象,但拥有更广泛的浏览器支持,但仅限于 String 值。
如果提供了 data
,键/值对将通过 Uri.encodeQueryComponent 进行 URI 编码,并转换为 HTTP 查询字符串。
除非另外指定,此方法将附加以下头信息
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
下面是使用此方法的一个示例
var data = { 'firstName' : 'John', 'lastName' : 'Doe' };
HttpRequest.postFormData('/send', data).then((HttpRequest resp) {
// Do something with the response.
});
另请参阅
实现
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);
}