我使用rest api来显示数据,但对于api加载来说,它需要更多的时间,如何在flutter中减少时间。
Future getData0() async {
Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
final SharedPreferences prefs = await _prefs;
var receivedToken = "Bearer " + prefs.getString("BearerToken");
var receivedstoreid=prefs.getString("store_id");
http.Response res = await http.get(
"http://Domainname.com/api/rest/cart",
headers: {
'Authorization': receivedToken,
'X-Oc-Store-Id': receivedstoreid,
},
);
Map mapRes = jsonDecode(res.body);
print('Response from server: $mapRes');
get_cart_item = GetCart.fromJson(mapRes);
print(get_cart_item.toJson());
我这样调用get和post api。
我看到您正在使用http
包进行请求。与其使用http.get()
为每个请求建立新的连接,不如创建一个可重用的http.Client()
,并使用此客户端访问您的API。这将帮助您减少每次请求前的连接等待时间。
代码演示
// Create a reusable HTTP client
final client = http.Client();
void getData(){
// Reuse the client created above for all API requests
final response = client.get(...);
...
}
void getDifferentData(){
// Reuse the client created
final response = client.get(...);
...
}
这将帮助您显著减少API时间。