颤振-如何添加多API数据源?
我有两个API,数据相同,但链接不同,有时其中一个不起作用,所以我想尝试从第一个API获取数据,如果它不起作用,那么从第二个API获取数据(作为备份数据源) 有人能帮我做这件事吗? 提前谢谢颤振-如何添加多API数据源?,api,flutter,Api,Flutter,我有两个API,数据相同,但链接不同,有时其中一个不起作用,所以我想尝试从第一个API获取数据,如果它不起作用,那么从第二个API获取数据(作为备份数据源) 有人能帮我做这件事吗? 提前谢谢 import 'package:http/http.dart'; import 'dart:convert'; class MyWorking { Future getData() async { String data; Response response = await get(
import 'package:http/http.dart';
import 'dart:convert';
class MyWorking {
Future getData() async {
String data;
Response response = await get(
'first Url');
if (response.statusCode == 200) {
data = response.body;
print(data);
return jsonDecode(data);
} else {
print(response.statusCode);
}
}
}
试试这个:
Future getData(int index) async { //changed this line
List<String> data = ['first url','second url']; //changed this line
Response response = await get(data[index]);
if (response.statusCode == 200) {
data = response.body;
print(data);
return jsonDecode(data);
} else {
print(response.statusCode);
index == 0 ? getData(1):getData(0); //add this line
}
}
Future-getData(int-index)async{//更改了此行
列表数据=['first url','second url'];//更改了此行
响应=等待获取(数据[索引]);
如果(response.statusCode==200){
data=response.body;
打印(数据);
返回jsonDecode(数据);
}否则{
打印(响应状态码);
索引==0?getData(1):getData(0);//添加此行
}
}
我尝试了这个方法,效果很好,但正如您在if语句中看到的第二个url一样,他们的目的是不是在第一个url下
import 'package:http/http.dart';
import 'dart:convert';
class MyWorking {
Future getData() async {
String data;
Response response = await get('first URL');
if (response.statusCode == 200) {
data = response.body;
return jsonDecode(data);
} else if (response.statusCode != 200) {
response = await get('second URL');
data = response.body;
return jsonDecode(data);
} else {
print(response.statusCode);
}
}
}
尝试在
else条件下调用其他API,就完成了。这样做有什么问题?