颤振-如何添加多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(

我有两个API,数据相同,但链接不同,有时其中一个不起作用,所以我想尝试从第一个API获取数据,如果它不起作用,那么从第二个API获取数据(作为备份数据源

有人能帮我做这件事吗? 提前谢谢

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,就完成了。这样做有什么问题?