我正在尝试获取所有json数据https://www.thecocktaildb.com/api/json/v1/1/filter.php?c=Cocktailapi返回,在我的flutter应用中使用它
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=/";
不要使用Uri.https()
,而是尝试使用Uri.parse()
添加: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"];