Что означает% 5B и% 5D в запросах POST?

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

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

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

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

Ответ 1

Согласно этому ответу здесь: 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, ']');
}

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

Ответ 3

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

Ответ 4

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

Таким образом, они стоят [, соответственно ]

Ответ 6

Данные, вероятно, были бы опубликованы из веб-формы, немного похожие на это (но, вероятно, намного сложнее):

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

Если метод "get" вместо "post", нажатие кнопки "Отправить" приведет вас к 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, содержащими эти значения.