Поделиться через


WwwFormUrlDecoder Класс

Определение

Анализирует строку запроса URL-адреса и предоставляет результаты в виде вектора только для чтения (списка) пар "имя-значение" из строки запроса.

public ref class WwwFormUrlDecoder sealed : IIterable<IWwwFormUrlDecoderEntry ^>, IVectorView<IWwwFormUrlDecoderEntry ^>
/// [Windows.Foundation.Metadata.Activatable(Windows.Foundation.IWwwFormUrlDecoderRuntimeClassFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class WwwFormUrlDecoder final : IIterable<IWwwFormUrlDecoderEntry>, IVectorView<IWwwFormUrlDecoderEntry>
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Foundation.IWwwFormUrlDecoderRuntimeClassFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class WwwFormUrlDecoder final : IIterable<IWwwFormUrlDecoderEntry>, IVectorView<IWwwFormUrlDecoderEntry>
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Foundation.IWwwFormUrlDecoderRuntimeClassFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class WwwFormUrlDecoder : IEnumerable<IWwwFormUrlDecoderEntry>, IReadOnlyList<IWwwFormUrlDecoderEntry>
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Foundation.IWwwFormUrlDecoderRuntimeClassFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class WwwFormUrlDecoder : IEnumerable<IWwwFormUrlDecoderEntry>, IReadOnlyList<IWwwFormUrlDecoderEntry>
function WwwFormUrlDecoder(query)
Public NotInheritable Class WwwFormUrlDecoder
Implements IEnumerable(Of IWwwFormUrlDecoderEntry), IReadOnlyList(Of IWwwFormUrlDecoderEntry)
Наследование
Object Platform::Object IInspectable WwwFormUrlDecoder
Атрибуты
Реализации

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Комментарии

Используйте класс WwwFormUrlDecoder для синтаксического анализа строки запроса на пары "имя-значение" на основе количества и размещения символов "&" и "=". Каждая пара "имя-значение" представлена объектом IWwFormUrlDecoderEntry , который имеет свойства Name и Value (обе строки).

Используйте GetFirstValueByName , чтобы найти конкретный параметр именованной строки запроса. Этот метод можно использовать во всех языках. Обычно вы используете GetFirstValueByName , а не GetAt , так как порядок элементов в строке запроса обычно не важен, тогда как имя параметра является важным идентификатором частей запроса. Или, если вы не знаете, какие имена существуют в строке запроса, можно выполнить перечисление по всей коллекции WwwFormUrlDecoder.

Свойство Uri.QueryParsed возвращает полный объект WwwFormUrlDecoder на основе экземпляра Uri . Таким образом, если вы используете расширения компонентов Visual C++ (C++/CX) или код JavaScript и у вас уже есть экземпляр Uri , вам не потребуется создавать новый объект WwwFormUrlDecoder, экземпляр Uri уже имеет его. Вы можете создать WwwFormUrlDecoder, если у вас есть строка, представляющая URL-адрес, или его компонент строки запроса из других источников, например из API Windows.Web.Http .

Примечание

Эта коллекция является вектором, а не картой, если исходный порядок имеет какое-либо значение для реализации, а также потому, что одно и то же имя может отображаться в строке запроса дважды, тогда как для карт не является допустимым наличие повторяющихся ключей.

Списки элементов коллекции

Для использования .NET в WwwFormUrlDecoder есть проецируемые API универсального IReadOnlyList с ограничением IWwFormUrlDecoderEntry . API, доступные для каждого языка, указываются в списках членов.

Для JavaScript WwwFormUrlDecoder содержит элементы, отображаемые в списках элементов. Кроме того, WwwFormUrlDecoder поддерживает свойство length , элементы Array.prototype и использование индекса для доступа к элементам.

Использование .NET

Код .NET не может использовать класс Windows.Foundation.Uri (вместо него используется System.Uri ). Но код .NET может и должен использовать WwwFormUrlDecoder. Использование WwwFormUrlDecoder проще и менее подвержено ошибкам, чем разделение строк на символы "&" и "=". Это усложняется из-за кодирования. Чтобы использовать WwwFormUrlDecoder, вызовите конструктор WwwFormUrlDecoder , передав значение Query из system.Uri. При этом инициализируется новый объект WwwFormUrlDecoder. Затем используйте GetFirstValueByName , чтобы найти конкретный именованный параметр строки запроса. Или, если вы не знаете, что будет в строке запроса, выполните перечисление по коллекции, чтобы определить доступные параметры строки запроса.

Используйте интерфейс IWwFormUrlDecoderEntry для типа элементов в коллекции (именно так элементы будут вводиться с помощью IndexOf). Не используйте класс WwwFormUrlDecoderEntry , он недоступен для использования .NET.

WwwFormUrlDecoder также имеет проецируемые API универсального IReadOnlyList с ограничением IWwFormUrlDecoderEntry , но эти API часто не используются.

Примечание

System.Web.HttpUtility.ParseQueryStringнедоступно для .NET для приложения среда выполнения Windows. Рекомендуемой заменой для него является WwwFormUrlDecoder.

Перечисление коллекции на C# или Microsoft Visual Basic

WwwFormUrlDecoder перечисляется, поэтому для перечисления элементов в коллекции можно использовать синтаксис для конкретного языка, например foreach в C#. Компилятор выполняет приведение типов автоматически, и вам не нужно явно приводить к IEnumerable<IWwwFormUrlDecoderEntry> . Если необходимо выполнить приведение явным образом, например, если вы хотите вызвать GetEnumerator, приведите к IEnumerable<T> с ограничением IWwFormUrlDecoderEntry .

Конструкторы

WwwFormUrlDecoder(String)

Создает и инициализирует новый экземпляр класса WwwFormUrlDecoder .

Свойства

Size

Возвращает количество пар "имя-значение" в текущей строке запроса URL-адреса.

Методы

First()

Возвращает итератор, представляющий первую пару "имя-значение" в текущей строке запроса URL-адреса.

GetAt(UInt32)

Возвращает пару "имя-значение" по указанному индексу в текущей строке запроса URL-адреса.

GetFirstValueByName(String)

Возвращает первую пару "имя-значение", которая имеет указанное имя, полученное из строки запроса URI.

GetMany(UInt32, IWwwFormUrlDecoderEntry[])

Возвращает пары "имя-значение", начиная с указанного индекса в текущей строке запроса URL-адреса.

IndexOf(IWwwFormUrlDecoderEntry, UInt32)

Возвращает значение, указывающее, находится ли указанная IWwFormUrlDecoderEntry по указанному индексу в строке запроса текущего URL-адреса.

Применяется к

См. также раздел