J’essaie d’écrire une classe Java pour me connecter à un certain site Web. Les données envoyées dans la requête POST pour se connecter sont
user%5Blogin%5D=uesrname&user%5Bpassword%5D=123456
Je suis curieux de savoir ce que signifie %5B
et %5D
dans la connexion de l’utilisateur clé.
Comment encoder ces données?
Selon cette réponse ici : str='foo%20%5B12%5D'
code pour foo [12]
:
%20 is space %5B is '[' and %5D is ']'
Cela s’appelle le codage en pourcentage et est utilisé pour coder des caractères spéciaux dans les valeurs du paramètre url.
EDIT Au fait, alors que je lisais https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI#Description , je me suis juste demandé pourquoi tant de personnes effectuaient la même recherche. Voir la note au bas de la page:
Notez également que si vous souhaitez suivre la RFC3986 plus récente pour les URL, en mettant les crochets en tête (pour IPv6) et donc non encodés lors de la formation de quelque chose pouvant faire partie d’une URL (un hôte par exemple).
function fixedEncodeURI (str) { return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']'); }
Espérons que cela aidera les gens à résoudre leurs problèmes quand ils tombent sur cette question.
Ils représentent [
et ]
. L’encodage s’appelle “encodage d’URL” .
Eh bien, c’est le codage url habituel
Donc, ils représentent [
respectivement ]
[]
est remplacé par %5B%5D
au moment du codage de l’URL.
Pour jeter un coup d’œil, vous pouvez utiliser un outil en ligne .
Les données auraient probablement été postées à l’origine à partir d’un formulaire Web ressemblant un peu (mais probablement beaucoup plus compliqué):
Si la méthode était “get” au lieu de “post”, cliquer sur le bouton “submit” vous amènerait à une URL ressemblant à ceci:
http://example.com/?user%5Blogin%5D=username&user%5Bpassword%5D=123456
ou:
http://example.com/?user%5Blogin%5D=username&user%5Bpassword%5D=123456
Le serveur Web à l’autre extrémité prendra probablement les parameters user[password]
user[login]
et user[password]
, et les transformera en object user
avec des champs de login
et de password
contenant ces valeurs.