flutter 使用http 发送post 包含application/x-www-form-urlencoded格式的数据,并将接收数据打印出来
时间: 2024-10-19 17:03:57 浏览: 17
ipfs-dart:用于Flutter应用程序的IPFS Dart原型,用于向IPFS发送数据和从IPFS接收数据
在Flutter中,使用HTTP发送POST请求并携带`application/x-www-form-urlencoded`格式的数据通常涉及dart:io库或者第三方包如dio或http。这里我们以 dio 库为例,因为它简化了网络请求操作。
首先,你需要添加dio依赖到pubspec.yaml文件中:
```yaml
dependencies:
dio: ^4.0.0
```
然后在Dart代码中发送POST请求:
```dart
import 'package:dio/dio.dart';
final dio = Dio();
Future<void> sendPostRequest(String url, Map<String, String> formData) async {
// 创建POST请求
final options = Options(
contentType: ContentType.applicationXFormUrlEncoded,
);
try {
// 发送POST请求,formData是你需要发送的数据,key-value对形式
final response = await dio.post(
Uri.parse(url),
data: formData.entries.map((e) => e.toString()).toList(),
options: options,
);
if (response.statusCode == 200) {
// 打印接收到的数据(假设response.data是一个json)
print('Received data: ${response.data}');
} else {
print('Error: ${response.statusCode}');
}
} on DioError catch (error) {
print('Error: $error');
}
}
```
在这个例子中,`sendPostRequest`函数接受URL和一个键值对的Map作为参数。调用这个函数时,你可以传递你需要POST的数据,例如:
```dart
final formData = {
'key1': 'value1',
'key2': 'value2',
};
sendPostRequest('https://example.com/api', formData);
```
阅读全文