Mise en forme du code / Guides

Construire une requête URL sans double encodage

Une requête URL comporte des clés, des valeurs et des séparateurs. Encoder une valeur et assembler la requête sont deux opérations.

Séparer la structure des données

Une requête URL suit souvent un point d'interrogation et présente des paires clé=valeur séparées par des esperluettes. Ces délimiteurs structurent le message. Si une valeur contient elle-même une esperluette, celle-ci doit rester dans la valeur et non devenir le début d'une nouvelle paire. Un encodeur de composant prépare une seule donnée; un constructeur de requête assemble clés, valeurs et séparateurs. Ce sont deux niveaux différents. N'encodez pas toute une requête comme un composant, sinon le point d'interrogation, les signes égal et les esperluettes deviennent des données. Ne collez pas non plus des valeurs brutes entre séparateurs en espérant que le navigateur retrouvera leurs limites.

Un exemple avec une clé répétée

Imaginons une recherche dont q vaut red & blue et dont les deux étiquettes tag valent a et b. Fournissez au convertisseur JSON vers requête un objet contenant q comme texte et tag comme tableau. La sérialisation de formulaire donne q=red+%26+blue&tag=a&tag=b. Le plus représente un espace dans cette convention, tandis que %26 protège l'esperluette de la recherche. L'outil inverse retrouve q égal à red & blue et tag sous forme de tableau de deux textes. Cette répétition est voulue: tag=a&tag=b n'est pas une seule valeur contenant une virgule. Modifiez une étiquette dans l'outil intégré pour le constater.

Les délimiteurs restent structurels; la recherche reste une donnée.
  1. Brut : q = red & blue; tag = a, b
  2. Requête : q=red+%26+blue&tag=a&tag=b
  3. Analyse : q est une phrase; tag a deux valeurs

Un composant peut avoir une autre forme

L'encodeur de composant URL applique les règles prévues pour une seule valeur. Un espace peut alors s'écrire %20, alors qu'un sérialiseur de requête fondé sur URLSearchParams utilise le signe plus. Les deux graphies conviennent à leur contexte, mais les chaînes produites ne sont pas identiques. Un vrai signe plus dans une requête de formulaire doit être échappé, sinon il redevient un espace lors de l'analyse. Réencoder un pourcentage déjà encodé produit %25: c'est un indice de double encodage. Gardez les clés et valeurs brutes jusqu'à l'assemblage, ou encodez exactement chaque composant avant un montage manuel, sans mélanger les méthodes.

Ce que conserve l'aller-retour

L'analyseur de MultiVerto transforme les clés répétées en tableaux. Toutes les valeurs reviennent sous forme de texte, même si le JSON initial contenait un nombre ou un booléen. Le type numérique original ne peut pas être deviné à partir de la requête. Les tableaux vides et les objets imbriqués n'ont pas non plus de traduction directe en paires simples; le constructeur les refuse. D'autres API peuvent choisir une règle différente pour les valeurs vides, l'ordre ou les doublons. Un aller-retour préserve donc des paires utiles sans restaurer tous les détails d'un objet JSON. Consultez le contrat du service pour définir tableaux, absences et chaînes vides.

Établir un test reproductible

Notez séparément l'adresse de destination, chaque clé et chaque valeur non encodée. Construisez la requête une seule fois, puis inspectez les caractères réservés. Analysez-la de nouveau pour vérifier que les paires attendues survivent, surtout avec des esperluettes, des plus, des pourcentages et des caractères non ASCII. Testez une clé répétée si le serveur accepte des tableaux et confirmez son interprétation côté serveur. L'encodage ne rend pas une valeur secrète: une URL peut être copiée, enregistrée et partagée. MultiVerto calcule l'exemple dans le navigateur, mais une URL que vous publiez ou envoyez obéit aux règles de visibilité de son propre environnement.

Essayer le convertisseur

Construisez la requête, puis analysez-la pour vérifier les paires.

Écrivez un objet JSON plat comme paramètres de requête URL.

Ouvrir le convertisseur complet

Autres guides

Guides de conversion

Explorer les guides