it-swarm.com.de

Was bedeutet% 5B und% 5D in POST Anfragen stehen für?

Ich versuche, eine Java-Klasse zu schreiben, um sich bei einer bestimmten Website anzumelden. Die Daten, die in der Anforderung von POST zum Anmelden gesendet werden, sind

user%5Blogin%5D=uesrname&user%5Bpassword%5D=123456

Ich bin gespannt, was der %5B und %5D im Schlüssel user login bedeutet.

Wie verschlüssele ich diese Daten?

213
Rakib Ansary

Wie in dieser Antwort über hier : str='foo%20%5B12%5D' codiert foo [12]:

%20 is space
%5B is '['
and %5D is ']'

Dies wird als percent Kodierung bezeichnet und wird zur Kodierung von Sonderzeichen in den URL-Parameterwerten verwendet.

EDIT Nebenbei, als ich https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI#Description las, fiel mir gerade ein, warum So viele Leute machen dieselbe Suche. Siehe den Hinweis am Ende der Seite:

Beachten Sie auch, wenn Sie dem aktuelleren RFC3986 .__ folgen möchten. Für URLs werden eckige Klammern reserviert (für IPv6) und daher nicht Bei der Bildung eines Elements, das Teil einer URL sein könnte (z. B. eines Hosts ), kann Folgendes hilfreich sein.

function fixedEncodeURI (str) {
    return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}

Hoffentlich hilft das den Leuten, ihre Probleme zu lösen, wenn sie auf diese Frage stoßen.

390
Boris Strandjev

Sie repräsentieren [ und ]. Die Kodierung heißt "URL-Kodierung" .

25
ruakh

[] wird zum Zeitpunkt der URL-Codierung durch %5B%5D ersetzt.

10
Lalit Bhudiya

Nun, es ist die übliche URL-Kodierung

Sie stehen also für [ bzw. ]

9
Voo

Für einen kurzen Blick können Sie mit diesem Online-Tool -decodieren.

2

Die Daten wären wahrscheinlich ursprünglich aus einem Webformular bereitgestellt worden, das ein bisschen so aussieht (aber wahrscheinlich viel komplizierter):

<form action="http://example.com" method="post">

  User login    <input name="user[login]"    /><br />
  User password <input name="user[password]" /><br />

  <input type="submit" />
</form>

Wenn die Methode "get" anstelle von "post" wäre, würden Sie durch Klicken auf die Schaltfläche "Submit" zu einer URL gelangen, die ein bisschen wie folgt aussieht:

http://example.com/?user%5Blogin%5D=username&user%5Bpassword%5D=123456

oder:

http://example.com/?user[login\=Benutzername&user[Passwort $=123456

Der Webserver am anderen Ende nimmt wahrscheinlich die Parameter user[login] und user[password] in ein user-Objekt mit login- und password-Feldern auf, die diese Werte enthalten.

0
mwfearnley