1

我正在尝试获取https://www.thecocktaildb.com/api/json/v1/1/filter.php?c=Cocktail api 返回的所有 json 数据,以在我的颤振应用程序中使用它

var api="https://www.thecocktaildb.com/api/json/v1/1/filter.php?c=Cocktail";
var res=await http.get(api);
drinks= jsonDecode(res.body)["drinks"];

但是它在 http.get(api) 函数调用中的 api 参数下给出了红色下划线,即“字符串类型的参数不能转换为 URI”如何解决这个问题?我什至尝试使用 res=await http.get(Uri.https('www.thecocktaildb.com','/api/json/v1/1/filter.php?c=Cocktail'));

但出现错误“连接到服务协议时出错:无法连接到http://127.0.0.1:63573”/_fprblq_tiY=/”

4

2 回答 2

0

而不是使用Uri.https(),尝试使用Uri.parse()

于 2021-04-02T19:25:17.760 回答
0

将 : 添加 http: ^0.13.4到您的pubspec.yaml,它将为您提供一些访问 api 的简单方法。您不能?直接添加,因为它会转换为3%F我相信,其他特殊字符也是如此。

var url = 'thecocktaildb.com';
var urlExtension = '/api/json/v1/1/filter.php';
final Map<String, String> queryParameters = <String, String>{
  'c': 'Cocktail',
};
final api = Uri.https(url, urlExtension, queryParameters);

//It should be something like this, now you can get
//the api response the way you were doing:

var res=await http.get(api);
drinks= jsonDecode(res.body)["drinks"];
于 2022-01-01T08:25:44.007 回答