如何通过传递变量(参数)来获取api数据?

时间:2018-12-27 12:02:51

标签: json flutter flutter-layout

我正在获取体育运动员的api数据,我需要为其传递唯一的player id。目前,我必须手动传递pid,一次只能获取一个玩家的数据。但是我想获取多个玩家数据并将其显示在listView中。

API端点为:https://cricapi.com/api/playerStats?apikey=&pid=0000

我能够解析上述url,获取结果并正确显示在UI中,但是我想获取多个玩家数据,而不仅仅是一个。

要获取api的代码:

FetchJson() async {
  var response = await http.get('https://cricapi.com/api/playerStats? 
    apikey=&pid=1111');

  if (response.statusCode == 200) {
    String responseBody = response.body;
    var responseJson = jsonDecode(responseBody);
    name = responseJson['name'];
    playingRole = responseJson['playingRole'];
    battingStyle = responseJson['battingStyle'];
    country = responseJson['country'];
    imageURL = responseJson['imageURL'];

Json代码段是:

  

{     “ pid”:1111,     “ country”:“ Australia”,     “ profile”:“ \ n \ n等等”,     “ imageURL”:“ https://www.cricapi.com/playerpic/1111.jpg”,

我想要实现的是,动态显示多个玩家配置文件,而不是在代码中传递硬编码的pid,以便UI将在listview中显示多个玩家。

如何在url端点中动态传递不同的pid

1 个答案:

答案 0 :(得分:2)

通过使用String插值并接收id作为参数。您可以详细了解here

FetchJson(int playerId) async {
  var response = await http.get('https://cricapi.com/api/playerStats? 
    apikey=&pid=$playerId');

  if (response.statusCode == 200) {
    String responseBody = response.body;
    var responseJson = jsonDecode(responseBody);
    name = responseJson['name'];
    playingRole = responseJson['playingRole'];
    battingStyle = responseJson['battingStyle'];
    country = responseJson['country'];
    imageURL = responseJson['imageURL'];