0
votes

DART: Comment faire de la demande avec le corps

Comment envoyer une demande d'obtention avec le corps à Dart?

J'ai essayé toutes les recettes ( Ce et que et plus ) mais sans succès. xxx

Ceci est complexe JSON et j'ai eu une erreur lors de l'envoi de demande: final URI = URI.HTTP ('44 .44.444.444: 8080 ',' Get-Réponse ', QueryParameters);

EXCEPTION: TYPE' _INTERNALLINKEDHASHMAP 'n'est pas un sous-type de type' mappe '


0 commentaires

4 Réponses :


0
votes

Je pense que votre QueryParameterers code> ne doit pas contenir d'objets.

final queryParameters = {
    "id": "6767676767676",
    "device": "tatatata",
    "login" : "login",
    "password" : "password",
};


1 commentaires

c'est due à un contrat. Je ne peux pas supprimer l'objet des paramètres.



0
votes

Avez-vous essayé:

var response = await get(url);
var fetchedData = json.decode(response.body);


0 commentaires

0
votes

La réponse sa réellement ce que le flutter a suggéré em> dans la présente partie du message d'exception code>:

'_ _ internallinkedhashmap ' n'est pas un sous-type de type 'mappe ' p> BlockQuote>

Qu'est-ce que cela signifie? H2>

Cela signifie que, l'une de vos variable em> est '_ _ internallinkedhashmap ' code> et flutter veut que vous le modifiez à 'carte ' code> Type p>

Vous devez faire une de vos touches dans QueryParameters Code> à ceci 'Carte ' Code> Type P>

Comment? H2>

1. Importation dart convert h3>

en importation dart: convert code>, nous aurons jsonencode code> méthode p> xxx pré>

2. Convertir la valeur imbriquée, en chaîne h3> xxx pré>

3. Remettez-le à vos paramètres principaux h3> xxx pré>

code final h2>

Ce code final ressemble ci-dessous: P>

    import 'dart:convert'; // put this at top of your file


    final nestedValue = {
        "login": "login",
        "password": "pwd",
      };

    String stringValue = jsonEncode(nestedValue); // add this

    final queryParameters = {
      "id": "6767676767676",
      "device": "tatatata",
      "user": stringValue
    };

    final uri = Uri.http('44.44.444.444:8080', 'get-answer', queryParameters);


4 commentaires

Nope (((((maintenant les paramètres réussis, mais j'ai eu une erreur: Body de réponse: {... "Statut": 400, "Erreur": "Mauvaise demande", "Message": "Le corps de la demande requis est manquant: < / Code> Comme je peux réaliser QueryParameterers n'est pas vraiment corps .


Bien sûr, son problème différent. Je pense que vous utilisez le point final JSON à droite?, C'est différent de votre utilisation maintenant. Vous feriez mieux d'utiliser le package dio. Mais si vous constatez que votre problème précédent est maintenant résolu, une exception: tapez '_internallinkedhashmap ' n'est pas un sous-type de type 'mappe ', vous devez accepter cela comme réponse, il sera fermé automatiquement.


Thanx, vous avez raison, votre conseil a vraiment aidé la carte <...>. J'ai essayé Dio aussi, cela n'a pas aidé à résoudre le problème de mon "get avec le corps". Va creuser des sources))


Oh je vois, auparavant, j'ai eu cette question. J'ai dû mettre une application / JSON de type de contenu sur l'en-tête. et mettre {} sur le corps



0
votes

Je vous conseille d'utiliser le package http Il est parfait pour effectuer des demandes HTTP. Avant d'envoyer des données, assurez-vous de vous encoder en mode JSON au format JSON à l'aide de la fonction jsonencode et pour obtenir les données à partir d'un obtenir Demande Décodez le corps de la demande du format JSON en utilisant le format JSON en utilisant Fonction JSondecode.

  • Ces fonctions sont importées à partir du dart: convertir package xxx

0 commentaires