weboptions

Укажите параметры для веб-сервиса RESTful

Описание

пример

options = weboptions возвращает значение по умолчанию weboptions объект, чтобы задать параметры для запроса к веб-сервису. A weboptions объект может быть необязательным входным параметром в webread, websave, и webwrite функций. Для опций, не поддерживаемых weboptions См. раздел «Интерфейс HTTP».

пример

options = weboptions(Name,Value) задает одно или несколько свойств weboptions объект.

Примеры

Значения по умолчанию weboptions Объект

Создайте weboptions по умолчанию и отобразите значения по умолчанию для его свойств.

options = weboptions
options = 

  weboptions with properties:

      CharacterEncoding: 'auto'
              UserAgent: 'MATLAB 9.7.0.1112323 (R2019b)'
                Timeout: 5
               Username: ''
               Password: ''
                KeyName: ''
               KeyValue: ''
            ContentType: 'auto'
          ContentReader: []
              MediaType: 'auto'
          RequestMethod: 'auto'
            ArrayFormat: 'csv'
           HeaderFields: []
    CertificateFilename: 'default'

Имя пользователя и пароль в веб-опциях Объект

Установите имя пользователя веб-сервиса и пароль в weboptions объект. Можно использовать объект как входной параметр для webread, websave, или webwrite когда ваш веб-сервис требует проверки подлинности.

options = weboptions('Username','jdoe','Password','mypassword');

Пароль заслоняется при отображении weboptions объект. Однако объект сохраняет пароль как обычный текст. Вы можете получить пароль от weboptions.Password свойство.

options.Password
ans = 
'mypassword'

Входные параметры

свернуть все

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

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

Пример: weboptions('Timeout',60) создает weboptions объект, который устанавливает длительность тайм-аута в 60 секунд.

Кодировка, используемая webread для преобразования веб- содержимого в символы, заданные как строковый скаляр или вектор символов. Общие кодировки включают 'US-ASCII', 'UTF-8', 'latin1', 'Shift_JIS', и 'ISO-8859-1'. Кодировка по умолчанию зависит от типа контента. Если вы получаете сморщенный текст, то webread кодирование может отличаться от кодирования, используемого документом. Попробуйте задать CharacterEncoding на UTF-8.

Идентификация агента пользователя, заданная как строковый скаляр или вектор символов, указывающий на агента пользователя клиента.

Длительность тайм-аута соединения в секундах, заданная как положительный числовой скаляр. Значение представляет собой количество секунд, которое нужно подождать, чтобы получить начальный ответ (заголовок) от сервера после отправки последнего пакета запроса. Timeout эквивалентно свойству ResponseTimeout в matlab.net.http.HTTPOptions класс. Максимальное значение - 2147.483647 секунд. Использование Inf для установки максимального значения.

Некоторые операционные системы имеют максимальное время ожидания, установленное системой. Это тайм-аут вступает в эффект, даже если значение Timeout больше максимального. Для примера, в Windows® 10, этот тайм-аут составляет 21 секунду.

Идентификатор пользователя, заданный как строковый скаляр или вектор символов для базовой и/или дайджестовой HTTP-аутентификации (без шифрования). Дополнительные сведения о базовой схеме HTTP-аутентификации см. в разделе https://tools.ietf.org/html/rfc7617. Дополнительные сведения о проверке подлинности доступа к дайджесту HTTP см. в разделе https://tools.ietf.org/html/rfc7616.

Пароль аутентификации пользователя, заданный как строковый скаляр или вектор символов для базовой и/или дайджестовой HTTP-аутентификации (без шифрования). Если вы отображаете weboptions объект с Password set, затем значение отображается как вектор символов, содержащий «*». Однако объект хранит значение Password как обычный текст.

Имя ключа, заданное как строковый скаляр или вектор символов. KeyName - дополнительное имя для добавления к заголовку запроса HTTP. Для примера, KeyName может быть именем ключа API веб-сервиса.

Пример: weboptions('KeyName','duration','KeyValue',7) создает weboptions объект, содержащий имя ключа, duration, заданный веб-сервисом.

Значение ключа, заданное как строковый скаляр, вектор символов или числовое или логическое значение для добавления к заголовку запроса HTTP. KeyValue - значение ключа, заданное как KeyName.

Пример: weboptions('KeyName','duration','KeyValue',7) создает weboptions объект, который содержит значение ключа, 7, в паре с именем ключа, duration.

Имена и значения полей заголовка, заданные как массив m на 2 строк или массив ячеек векторов символов для добавления к заголовку запроса HTTP. HeaderFields{i,1} - имя поля и HeaderFields{i,2} является его значением.

Эти поля заголовка автоматически добавляются или заменяются полями webread, webwrite, или websave. Обычно эти поля добавляются, но если имя одного из этих полей не учитывает регистр и соответствует одному из полей, которые будут добавлены автоматически, и это поле не поддерживает несколько значений (для примера, Content-Type), то вместо этого используется заданное значение. Некоторые поля, значение которых необходимо для успешной отправки запроса, такие как Подключение и Длина содержимого, не могут быть переопределены.

Пример: weboptions('HeaderFields',{'Content-Length' '78';'Content-Type' 'application/json'}) создает weboptions объект, содержащий два поля заголовка: Content-Length со значением 78 и Content-Type со значением application/json.

Тип содержимого, заданный как строковый скаляр или вектор символов. Использование ContentType запрашивать, чтобы сервер предпочтительно возвращал данные в конкретном формате. webread использует это значение, чтобы преобразовать ответ в MATLAB® тип. Сервер возвращает этот тип контента, если это возможно, но не обязан этого делать.

ContentType Спецификатор

Выход

'auto' (по умолчанию)

Выход определяется автоматически на основе типа содержимого, заданного сервером.

'text'

Вектор символов для типов содержимого:

text/plain
text/html
text/xml
application/xml
application/javascript
application/x-javascript
application/x-www-form-urlencoded

Если веб-сервис возвращает файл MATLAB с .m расширение, функция возвращает свое содержимое как вектор символов.

'image'

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

Для поддерживаемых форматов изображений смотрите Поддерживаемые Форматы файлов для Импорта и Экспорта.

'audio'

Числовая матрица для audio/format содержимое с числовой скалярной частотой дискретизации в качестве второго выходного аргумента.

Для поддерживаемых аудиоформатов смотрите Поддерживаемые Форматы файлов для Импорта и Экспорта.

'binary'

uint8 Вектор-столбец для двоичного содержимого (то есть содержимое, которое не должно рассматриваться как тип char).

'table'

Объект скалярной таблицы для электронной таблицы и CSV (text/csv) содержимое.

'json'

char, числовой, логический, структура или массив ячеек для application/json содержимое.

'xmldom'

Java® Узел объектной модели документа (DOM) для text/xml или application/xml содержимое. Если не указано, функция возвращает XML- содержимое как вектор символов.

'raw'

char вектор-столбец для 'text', 'xmldom', и 'json' содержимое. Функция возвращает любой другой тип контента как uint8 Вектор-столбец.

Пример: weboptions('ContentType','text') создает weboptions объект, который инструктирует webread для возврата текста, JSON или XML- содержимое в виде вектора символов.

Средство чтения содержимого, заданное как указатель на функцию. Можно создать weboptions объект с ContentReader заданный, и передать объект как входной параметр, webread. Тогда webread загружает данные из веб-сервиса и считывает данные с функцией, заданной указателем на функцию. webread игнорирует ContentType когда ContentReader задан.

Пример: weboptions('ContentReader',@readtable) создает weboptions объект, который инструктирует webread использовать readtable для чтения содержимого как таблицы.

Тип носителя, заданный как строковый скаляр, вектор символов или matlab.net.http.MediaType объект. MediaType задает тип данных webwrite отправляет в веб-сервис. Он задает тип контента, заданный MATLAB для сервера, и управляет тем, как webwrite data аргумент, если задан, преобразуется. Для получения дополнительной информации смотрите https://tools.ietf.org/html/rfc6838.

Значение по умолчанию 'auto' который указывает, что MATLAB выбирает тип на основе входов, webwrite. При использовании PostName/PostValue Аргументы пар, то MATLAB использует 'application/x-www-form-urlencoded' для отправки пар. При использовании data аргумент, который является скалярной строкой или вектором символов, тогда MATLAB принимает, что это строка с кодировкой форм, и отправляет ее как - использует 'application/x-www-form-urlencoded'. Если data есть что-нибудь еще, затем MATLAB преобразует его в JSON с помощью jsonencode и использует тип содержимого 'application/json'.

Если вы задаете MediaType содержащие 'json' или 'javascript', и data является вектор символов, затем отправляется как-is. Все другие типы, включая скалярные строки, преобразуются с помощью jsonencode.

Если вы задаете 'application/x-www-form-urlencoded', затем PostName/PostValue пары отправляются закодированными в форме. data, если присутствует, должен быть строковым или символьным вектором, который должен быть отправлен как-is.

Если вы задаете MediaType который содержит 'xml', и data является объектом Document Object Model (Java org.apache.xerces.dom.DocumentImpl), затем преобразуется в XML. data, если присутствует, должен быть строковым или символьным вектором, который должен быть отправлен как-is.

Если вы задаете любое другое MediaType, и data - строка или вектор символов, тогда weboptions отправляет значение как-is.

PostName/PostValue пары принимаются только для MediaType значения 'auto' и 'application/x-www-form-urlencoded', и векторы символов всегда отправляются как-является независимо от MediaType.

Можно задать разделенную точкой с запятой name=value параметры в MediaType string, для примера, 'application/json; odata=verbose'. Для некоторых серверов этот формат требуется как часть поля заголовка Content-Type в запросе.

Пример: weboptions('MediaType','application/json') создает weboptions объект, который инструктирует webwrite закодировать данные вектора символов как JSON, чтобы поместить их в веб-сервис.

Метод запроса HTTP, заданный как строковый скаляр, вектор символов или matlab.net.http.RequestMethod перечисление как одно из следующих значений:

  • 'auto'

    • webread и websave использовать метод HTTP GET.

    • webwrite использует метод HTTP POST.

  • 'get' для использования с webread и websave функций.

  • 'post' для использования с webread, webwrite, и websave функций.

  • 'put' для использования с webread, webwrite, и websave функций.

  • 'delete' для использования с webread, webwrite, и websave функций.

  • 'patch' для использования с webread, webwrite, и websave функций.

webread и websave функции помещают запрос в URL-адрес независимо от RequestMethod. webwrite помещает запрос в данные независимо от RequestMethod.

Пример: weboptions('RequestMethod','post') создает weboptions объект, который инструктирует webread, websave, или webwrite использовать метод HTTP POST веб-сервиса.

Формат для кодирования формы или публикации значений, представляющих несколько значений, заданный как 'csv', 'json', 'repeating', или 'php'. Запрос или значение записи содержат несколько значений, если это

  • Числовой, логический или datetime вектор

  • A символьного массива с несколькими строками

  • Вектор камеры, где каждый элемент является числом, логическим или datetime скаляр или вектор символов с одной строкой

Другие типы данных или размерностей не поддерживаются.

В этой таблице показаны преобразования, закодированные в форме для каждого формата, для параметра запроса с именем 'parameter' и значение запроса [1 2 3]. Веб-сервис определяет используемое преобразование.

ArrayFormat Спецификатор

Преобразование с кодировкой форм

'csv' (по умолчанию)

parameter=1,2,3

'json'

parameter=[1,2,3]

'repeating'

parameter=1&parameter=2&parameter=3

'php'

parameter[]=1&parameter[]=2&parameter[]=3

Чтобы кодировать скаляр как одноэлементный массив с 'json' или 'php' спецификаторы, поместите скаляр в массив ячеек с одним элементом.

Пример: weboptions('ArrayFormat','repeating') создает weboptions объект, который инструктирует webread, websave, или webwrite для кодирования формы любой запрос или запись значения с несколькими значениями в качестве повторяющихся параметров запроса.

Имя файла, заданное как строковый скаляр или вектор символов, обозначающий имя и местоположение файла, содержащего корневые сертификаты. Файл должен быть в формате PEM. Расположение должно быть в текущей папке, в папке на пути MATLAB или полным или относительным путем к файлу. Сертификаты, содержащиеся в этом файле, используются для проверки сертификатов сервера для HTTPS-подключений. Поскольку безопасность HTTPS-соединений зависит от целостности этого файла, защитите его соответствующим образом. MATLAB не управляет сертификатами или файлами сертификатов, но для управления PEM-файлами доступны сторонние программы.

По умолчанию, когда опции не заданы, MATLAB проверяет сертификаты сервера с помощью системного хранилища сертификатов. Это также поведение, если CertificateFilename установлено в 'default'.

Если CertificateFilename пуст (''), затем валидация сертификата сервера отключается. MATLAB только проверяет, что область имя сертификата сервера совпадает с именем сервера.

Если вы столкнулись с отказом валидации сертификата сервера с помощью 'default', затем проверьте подключение с помощью системного браузера.

Если вы столкнулись с проблемой подключения, примите во внимание следующее:

  • Для получения просроченного или отозванного сертификата сервера обратитесь к владельцу веб-сайта или администратору сервера.

  • Для отсутствующего сертификата корневого ЦС можно выбрать один из следующих:

    • Добавьте корневой сертификат CA к файлу, обозначенному CertificateFilename.

    • Отключить валидацию сертификата путем установки CertificateFilename в пустые ('').

  • Для несоответствия доменного имени сертификата сервера и доменного имени сервера можно отключить эту валидацию путем создания matlab.net.http.RequestMessage объект и установка matlab.net.http.HTTPOptions.VerifyServerName свойство к false.

Примечание

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

Атрибуты:

GetAccess

общественность

SetAccess

общественность

Введенный в R2014b