Что означают% 5B и% 5D в запросах POST? - PullRequest
228 голосов
/ 01 апреля 2012

Я пытаюсь написать класс Java для входа на определенный веб-сайт.Данные, отправленные в запросе POST для входа в систему,

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

Мне интересно, что означают %5B и %5D в ключе логин пользователя .

Как мне закодировать эти данные?

Ответы [ 6 ]

419 голосов
/ 01 апреля 2012

Согласно этому ответу более здесь : str='foo%20%5B12%5D' кодирует foo [12]:

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

Это называется процентное кодирование и используется в специальных кодировкахсимволы в значениях параметров URL.

РЕДАКТИРОВАТЬ Кстати, когда я читал https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI#Description,, мне просто пришло в голову, почему так много людей делают один и тот же поиск.См. Примечание внизу страницы:

Также обратите внимание, что если кто-то хочет следовать более свежим RFC3986 для URL, зарезервированные квадратные скобки (для IPv6) и, таким образом,не кодируется при формировании чего-либо, что может быть частью URL (например, хоста), может помочь следующее:

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

Надеюсь, это поможет людям разобраться в своих проблемах, когда они наткнутся на этовопрос.

25 голосов
/ 01 апреля 2012

Они представляют [ и ].Кодировка называется «Кодировка URL» .

10 голосов
/ 01 апреля 2012

[] заменяется на %5B%5D во время кодирования URL.

9 голосов
/ 01 апреля 2012

Ну, это обычная кодировка URL

Так они обозначают [ соответственно ]

2 голосов
/ 19 августа 2016

Для быстрого просмотра вы можете выполнить процентное декодирование с помощью этого онлайн-инструмента .

1 голос
/ 13 июня 2016

Данные, вероятно, были бы первоначально размещены из веб-формы, выглядящей немного похожей на это (но, вероятно, намного более сложной):

<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>

Если бы метод был «получить» вместо «пост»,Нажав кнопку «Отправить», вы попадете на URL, который выглядит примерно так:

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

или:

http://example.com/?user[login]=username&user[password]=123456

Веб-сервер на другом конце, скорее всего, примет параметры user[login] и user[password] и превратит их в объект user с полями login и password, содержащими этизначения.

...