it-swarm.com.ru

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

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

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

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

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

213
Rakib Ansary

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

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

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

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

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

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

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

390
Boris Strandjev

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

25
ruakh

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

10
Lalit Bhudiya

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

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

9
Voo

Чтобы быстро взглянуть, вы можете выполнить проценты/декодирование, используя этот онлайн-инструмент .

2
Krzysztof Przygoda

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

<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, содержащими эти значения.

0
mwfearnley