flutter 调用api
时间: 2023-10-23 16:13:44 浏览: 241
Flutter 调用 API 的一般步骤如下:
1. 创建一个网络客户端(例如 `http` 或 `dio`)。
2. 构建请求并发送它。
3. 处理响应。
以下是一个简单的示例,使用 `http` 客户端调用 API:
```dart
import 'dart:convert';
import 'package:http/http.dart' as http;
Future<Map<String, dynamic>> fetchData() async {
final response = await http.get('https://jsonplaceholder.typicode.com/posts');
if (response.statusCode == 200) {
return json.decode(response.body);
} else {
throw Exception('Failed to load data');
}
}
```
在上面的示例中,我们使用 `http` 客户端向 https://jsonplaceholder.typicode.com/posts 发送 GET 请求。如果响应状态码为 200,则将响应体解码为 Map 对象并返回。否则,抛出异常。
请注意,上述示例涉及从 API 中获取数据。如果您需要向 API 发送数据,您将需要使用 POST 请求或其他 HTTP 方法。
相关问题
flutter调用http api
Flutter通过使用第三方库如http请求库或dio库来调用http api. 在pubspec.yaml文件中添加库的依赖, 然后在dart文件中导入库并使用其中的方法来发起http请求。
示例代码:
```dart
import 'package:http/http.dart' as http;
// 发起get请求
var response = await http.get('https://example.com/api');
print(response.body);
// 发起post请求
var response = await http.post('https://example.com/api', body: {'key': 'value'});
print(response.body);
```
示例代码:
```dart
import 'package:dio/dio.dart';
// 创建dio实例
Dio dio = new Dio();
// 发起get请求
var response = await dio.get('https://example.com/api');
print(response.data);
// 发起post请求
var response = await dio.post('https://example.com/api', data: {'key': 'value'});
print(response.data);
```
以上为最简单的调用http api的方式,具体细节请看对应库的文档。
flutter周期调用Api
Flutter中可以通过`Timer`类实现周期性调用API。`Timer`类是一个计时器,在指定的时间间隔后触发回调函数。可以使用它来实现周期性的API调用。
下面是一个例子,每隔1秒钟调用一次API:
```dart
import 'dart:async';
import 'package:http/http.dart' as http;
void main() {
Timer.periodic(Duration(seconds: 1), (timer) {
_fetchData();
});
}
void _fetchData() async {
final response = await http.get(Uri.parse('https://example.com/api/data'));
// 处理接口返回的数据
// ...
}
```
使用`Timer.periodic`方法可以创建一个周期性计时器。第一个参数是时间间隔,这里是1秒钟。第二个参数是回调函数,这里是调用`_fetchData`方法。
在`_fetchData`方法中,发送HTTP请求获取接口数据,然后处理数据。当下一次计时器触发时,会再次调用`_fetchData`方法,实现周期性调用API的效果。需要注意的是,`Timer`类需要手动取消,否则会一直执行下去,造成资源浪费。可以使用`timer.cancel()`方法来取消计时器。
阅读全文