api - 使用 Flutter 实时获取数据
问题描述
我的应用程序出现问题,通过从另一个网站获取数据来获取数据。我希望我的屏幕实时显示数据,因此如果网站上发生任何更改,它会显示我的应用程序中的更改,而无需单击更新或执行任何其他操作。
我尝试使用未来,但我不知道如何使用它。这是我的代码:
import 'dart:convert';
import 'dart:io';
import 'package:http/http.dart' as http;
class FetchDataAPI {
get(String url, String function, Map<String, String> header) async {
List Response = List();
Response.clear();
try {
final result = await InternetAddress.lookup('google.com');
if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
// Internet connected
try {
var resBody = await http.get(
url,
headers: header,
);
print(resBody.statusCode);
// 200
if (resBody.statusCode == 200) {
Response = [json.decode(resBody.body)];
return Response ;
}
// Not 200
else {
Response = [
{
"exception": false,
"statusCode": resBody.statusCode,
// Body here depend on response post man
"body": json.decode(resBody.body),
"message": null
}
];
return Response;
}
} catch (e) {
Response = [
{
"exception": true,
"statusCode": null,
"body": null,
"message": e.toString()
}
];
return Response;
}
} else {
// Internet not connected
Response = [
{
"exception": true,
"statusCode": null,
"body": null,
"message": "No internet conected."
}
];
return Response;
}
} on SocketException catch (e) {
Response = [
{
"exception": true,
"statusCode": null,
"body": null,
"message": "No internet conected."
}
];
return Response;
}
}
}
解决方案
您应该使用Streams和StreamBuilder
推荐阅读
- java - 从另一个访问一个 jar 文件时出现问题
- laravel - 如何让 vue 组件等到数据准备好渲染?
- rtf - Apache Tika:无法使用 {\*\objclass Outlook.FileAttach} 从 RTF 文件中提取嵌入对象
- reactjs - React Hooks 将在等待后多次渲染
- javascript - 当数据存在和数据不存在时使用 css 定位 div
- reactjs - 在屏幕中渲染 html 后突出显示多个单词
- python - DrawBoundingBoxes 的 Tensorflow 形状排名错误
- c - 如何在c中将静态数组转换为动态数组?
- typescript - 如何键入包含一个或多个字符串集合的字符串数组?
- c# - 如何将传入消息映射到 Azure Eventhub 中的使用者组