Auditeur de longue date appelant pour la première fois.

Je fais une requête http à une API, j'obtiens une réponse que je convertis en une variable String, qui est ensuite utilisée dans une requête http suivante, mais la deuxième requête échoue.

En suivant l'erreur de mes manières, j'ai remplacé la variable String par une chaîne réelle identique à la variable et cela fonctionne. J'ai fait en sorte que l'API renvoie la chaîne qu'elle reçoit et renvoie la chaîne qui devrait fonctionner comme une variable.

Voici la fonction PHP

elseif($_POST['action']=='get_defects'){
    $data = get_aircraft_by_token($_POST['token']);
    echo $data['Defects'];
}

Voici la fonction Dart

Map<String, String> _getDefects = {
        'action': 'get_defects',
        'token': _token,
      };
      await _getHttpRequest(_getDefects);
      print(_data);
      var parsedJson = jsonDecode(_data) as List;
      Defects._defects =
          parsedJson.map((jsonItem) => DefectItem.fromJson(jsonItem)).toList();
      Defects.saveDefectFile(Defects._defects);
    }
  }

Voici la fonction _getHttpRequest appelée...

_getHttpRequest(Map<String, String> _httpRequest) async {
    http.Response _response;
    String _url = 'https://aircraftdata.flexihubs.com/API/interface.php';
    Map<String, String> _header = {
      'Content-Type': 'application/x-www-form-urlencoded'
    };
    _response = await http.post(_url, headers: _header, body: _httpRequest);
    _data = _response.body;
  }

Si je remplace

 _token = response.body //does not work, response.body=='token'(true)

Avec

_token = 'token'; //this works no problem

Ça marche? L'impression de response.body donne 'token', et son écho donne 'token'; donc je suppose qu'il y a quelque chose dans le fonctionnement de l'encodage que je ne connais pas, ou autre chose ?

0
Simon Lowther 9 nov. 2020 à 12:28

1 réponse

Meilleure réponse

J'ai trouvé le problème, grâce à l'indice dans les commentaires de Ro.

Résolu avec String.trim();

Je suppose qu'il devait y avoir un espace de fuite caché que j'ignorais?

0
Simon Lowther 9 nov. 2020 à 09:57