exponenta event banner

разбор

Класс: matlab.net.http.HeaderField
Пакет: matlab.net.http

Анализ значения поля заголовка и возврат в виде строк

Описание

value = parse(obj) анализирует Value свойство поля заголовка и возвращает строки. Этот метод используется для обработки полей заголовка, для которых нет класса в matlab.net.http.field пакет. Используйте matlab.net.http.HeaderField.displaySubclasses для отображения классов в пакете. Для классов в пакете используйте соответствующий convert метод для синтаксического анализа значения.

Правила синтаксиса и маршрутизации сообщений основаны на разделах 3.2.4-3.2.6 RFC 7230 и дополняются для интерпретации нескольких значений.

пример

value = parse(obj,fields) указывает имена, используемые для неназванных struct поля.

Если N-е поле struct не имеет имени, соответствующее N-е имя в fields существует и не пуст. Используется вместо Arg_N. Использование этого синтаксиса вынуждает возвращаемый value быть struct (или вектор struct объектов) с, по крайней мере, таким количеством полей, как длина fields. Обычно этот шаблон встречается в полях заголовка, которые начинаются с маркера, за которым следуют пары атрибутов.

value = parse(___,Name,Value) задает один или несколько разделителей. Разделителями по умолчанию являются запятые и точки с запятой. Можно использовать любой из входных аргументов в предыдущих синтаксисах.

Входные аргументы

развернуть все

Поле заголовка, указанное как matlab.net.http.HeaderField объект или вектор HeaderField объекты.

Названия struct поля, указанные как строковый вектор, символьный вектор или клеточный массив символьных векторов.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Разделители, разделяющие элементы массива, указанные как:

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

  • '' - Не выполнять синтаксический анализ obj в виде массива. MATLAB ® вставляет кавычки и символы escape.

  • [] - Не выполнять синтаксический анализ obj в виде массива. MATLAB не вставляет кавычки или символы escape в элементы массива.

Разделители, разделяющие поля структуры, указанные как:

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

  • '' - Не выполнять синтаксический анализ obj в качестве struct. MATLAB вставляет кавычки и символы escape.

  • [] - Не выполнять синтаксический анализ obj в качестве struct. MATLAB не вставляет кавычки или символы escape в struct значения.

Выходные аргументы

развернуть все

Поле заголовка Value свойство, возвращаемое как строковый вектор, a struct массив или массив ячеек struct значения.

MATLAB анализирует Value свойство в виде списка строк, разделенных запятыми. Каждая строка становится элементом value вектор. Элемент является одним из следующих элементов:

  • struct из name=value пары

  • struct значений, разделенных точкой с запятой

  • строка, если поле не содержит точку с запятой или знак равенства или не является структурой.

parse преобразует имя каждого struct к допустимому идентификатору MATLAB с использованием matlab.lang.makeValidName. Для следующего Value собственность, parse создает имя поля x_p1 от _p1.

Чтобы разрешить повторяющиеся имена, parse требования matlab.lang.makeUniqueStrings. Для следующего Value собственность, parse создает имя поля p11 из повторяющегося имени поля p1.

Если struct поле содержит только Value, но не name=value pair, то имя поля: Arg_N. N - порядковая позиция поля в struct. Для следующего Value собственность, parse создает имя поля Arg_2 для отсутствующего имени.

Value Собственность

Выходной аргумент

Описание

"p1=first p2=second"
    p1: "first"
    p2: "second"

parse возвращает struct для name=value пар.

"first;second"
    Arg_1: "first"
    Arg_2: "second"

parse возвращает struct и назначает имена полей по умолчанию для значений, разделенных точкой с запятой.

"first second"
"first second"

parse возвращает строку, если поле не содержит точку с запятой или знак равенства или не является структурой.

"_p1=first p2=second"
    x_p1: "first"
      p2: "second"

parse преобразует недопустимое имя поля _p1 кому x_p1.

"p1=first p1=second"
    p1: "first"
    p11: "second"

parse преобразует повторяющееся имя поля p1 кому p11.

"p1=first; second"
      p1: "first"
    Arg_2: "second"

parse создает имя поля Arg_2 для отсутствующего имени для Value second.

"p1=first; p3=(a comment here)"
    p1: "first"
    p3: "(a comment here)"

parse сохраняет комментарии.

Если obj является вектором полей заголовка, то parse метод объединяет результаты синтаксического анализа каждого из полей в один массив. Если значения не одного типа, то value является массивом ячеек.

Value Свойство вектора поля заголовка

Элемент выходного аргумента массива ячеек

"p1=first p2=second"
x{1} =
 
    p1: "first"
    p2: "second"
"third"
x{2} =
 
third

Примеры

развернуть все

Предположим, что получено поле заголовка H в ответном сообщении от сервера со свойством Value media-type; name1=value1; name2=value2. Для выполнения этого примера создайте переменную H.

H = matlab.net.http.HeaderField('Test-Name','media-type; name1=value1; name2=value2')
H = 

  HeaderField with properties:

     Name: "Test-Name"
    Value: "media-type; name1=value1; name2=value2"

Разбор Value имущество H. MATLAB создает имя поля по умолчанию Arg_1.

var = parse(H)
var = 

  struct with fields:

    Arg_1: "media-type"
    name1: "value1"
    name2: "value2"

Изменение имени по умолчанию на более значимое MediaType.

var = parse(H,'MediaType')
var = 

  struct with fields:

    MediaType: "media-type"
        name1: "value1"
        name2: "value2"

Признаки

Sealedtrue

Сведения об атрибутах методов см. в разделе Атрибуты метода.

Представлен в R2016b