Ответ 1
У вас есть несколько вариантов.
Вариант 1: параметр запроса с несколькими значениями
Вы можете предоставить несколько простых значений для одного параметра запроса. Например, строка запроса может выглядеть так:
PUT /path/to/my/resource?param1=value1¶m1=value2¶m1=value3
Здесь параметр запроса param1
имеет три значения, и контейнер предоставит вам доступ ко всем трем значениям в виде массива (см. Строка строки запроса).
Вариант 2: предоставить комплексные данные в корпусе PUT
Если вам нужно отправить сложные данные в запрос PUT
, это обычно делается, поставляя этот контент в тело запроса. Конечно, эта полезная нагрузка может быть xml (и связана через JAXB).
Помните, что точкой URI является идентификация ресурса (RFC 3986, 3.4), и если этот массив значений - это данные, которые необходим для идентификации ресурса, тогда URI является хорошим местом для этого. Если, с другой стороны, этот массив данных является частью нового представления, которое отправляется в этом запросе PUT
, то оно принадлежит к телу запроса.
Сказав это, если вам действительно не нужен массив простых значений, я бы рекомендовал выбрать вариант 2. Я не могу придумать вескую причину использования URL-кодированного XML в URL-адресе, d быть заинтересованным узнать больше о том, что именно эти данные.