Co oznacza %5B i % 5d w żądaniach POST?
Próbuję napisać klasę Java, aby zalogować się do określonej strony internetowej. Dane przesłane w żądaniu logowania POST to
user%5Blogin%5D=uesrname&user%5Bpassword%5D=123456
Jestem ciekaw co oznaczają %5B
i %5D
w kluczu login użytkownika .
Jak zakodować te dane?
6 answers
Zgodnie z tą odpowiedzią na tutaj: str='foo%20%5B12%5D'
Kodowanie foo [12]
:
%20 is space
%5B is '['
and %5D is ']'
Nazywa się to percent encoding i jest używane w kodowaniu znaków specjalnych w wartościach parametrów url.
EDIT przy okazji jak czytałam https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI#Descriptionwłaśnie przyszło mi do głowy, dlaczego tak wielu ludzi szuka tego samego. Zobacz notatkę na dole strony:
Także zauważ, że jeśli ktoś chce podążać za nowszym RFC3986 dla adresów URL, dzięki czemu nawiasy kwadratowe są zarezerwowane (dla IPv6), a więc nie zakodowane podczas tworzenia czegoś, co może być częścią adresu URL (np. host), może pomóc:
function fixedEncodeURI (str) {
return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}
Miejmy nadzieję, że to pomoże ludziom rozwiązać ich problemy, gdy natkną się na to pytanie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-03 21:22:45
Reprezentują [
i ]
. Kodowanie nazywa się "kodowanie URL".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-01 16:28:05
Cóż to jest zwykłe kodowanie url
Czyli oznaczają [
, odpowiednio ]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-01 16:28:36
[]
jest zastępowany przez %5B%5D
w czasie kodowania URL.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-08 13:00:43
Aby szybko się przyjrzeć, możesz percent-en / decode za pomocą tego narzędzia online .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-19 12:51:11
DANE prawdopodobnie zostałyby wysłane z formularza internetowego wyglądającego trochę tak (ale prawdopodobnie znacznie bardziej skomplikowanego):
<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>
Jeśli metoda byłaby " get "zamiast " post", kliknięcie przycisku Wyślij przeniesie Cię do adresu URL wyglądającego trochę tak:
Http://example.com/?user%5Blogin%5D=username&user%5Bpassword%5D=123456
Lub:
Http://example.com/?user[login] = nazwa użytkownika&użytkownika [Hasło]=123456
Serwer WWW po drugiej stronie prawdopodobnie pobierze parametry user[login]
i user[password]
i przekształci je w obiekt user
z polami login
i password
zawierającymi te wartości.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-13 15:07:43