Существует ли утилита Apache, которая принимает строку запроса и некоторое кодирование и возвращает Map of key, значение [] url декодируется?
Если вы используете версию 4.x HttpClient, вам нужно будет использовать URLEncodedUtils.parse(). Он принимает URI (или строку + кодировку) и возвращает список NameValuePairs.
URLEncodedUtils.parse()
устарело, но вы можете использовать HttpUtils.parseQueryString .
Отображает имена параметров в значения. Если параметр появляется более одного раза, значение является массивом.
РЕДАКТИРОВАТЬ: вышеуказанный метод устарел, потому что он не позволяет указывать кодировку символов.
В проекте HttpClient в apache есть классы, необходимые для этого.
Используйте URIUtil.decode (Строковые данные, Строковое кодирование) для декодирования строки запроса.
Затем ParameterParser.parse (запрос строки, разделитель символов) , чтобы получить список NameValuePair s. Затем вы можете поместить их в коллекцию Commons MultiMap , указав имя параметра. (Вы можете использовать обычную хэш-карту, но для этого требуется больше кода для обработки нескольких значений на ключ.)