webread

Считайте содержимое из веб-сервиса RESTful

Синтаксис

data = webread(url)
data = webread(url,QueryName1,QueryValue1,...,QueryNameN,QueryValueN)
data = webread(___,options)
[data,colormap,alpha] = webread(___)
[data,Fs] = webread(___)

Описание

пример

data = webread(url) содержимое чтений из веб-сервиса, заданного url и, возвращает содержимое в data.

Веб-сервис обеспечивает УСПОКОИТЕЛЬНОЕ, которое возвращает данные, отформатированные как интернет-тип носителя, такой как JSON, XML, изображение или текст.

пример

data = webread(url,QueryName1,QueryValue1,...,QueryNameN,QueryValueN) добавляет параметры запроса к url, как задано одной или несколькими парами аргументов значения имени. Чтобы поместить запрос в тело сообщения, используйте webwrite. Веб-сервис задает параметры запроса.

пример

data = webread(___,options) добавляют другие опции запроса HTTP, заданные объектом weboptions options. Можно использовать этот синтаксис с любым из входных параметров предыдущих синтаксисов.

Чтобы возвратить данные как определенный выходной тип, задайте свойство ContentType options.

Чтобы считать содержимое с функцией, задайте свойство ContentReader options как указатель на функцию. webread загружает данные из веб-сервиса и считывает данные с заданной функцией:

  • Если вы задаете указатель на функцию, которая возвращает несколько выходных аргументов, webread возвращает все выходные аргументы.

  • Если вы задаете указатель на функцию, которая не возвращает выходного аргумента (такого как функция Image Processing Toolbox™ @implay для видеофайлов), webread не возвращает выходного аргумента.

[data,colormap,alpha] = webread(___) читает изображение из веб-сервиса, заданного url, и возвращает изображение в data. Можно использовать предыдущие синтаксисы, чтобы возвратить изображение только. Используйте этот синтаксис, чтобы возвратить палитру и альфа-каналы, сопоставленные с изображением.

webread возвращает изображение, когда ответ HTTP имеет поле заголовка Content-Type, которое задает тип носителя изображений и если формат изображения поддерживается imread. Для поддерживаемых форматов изображения смотрите Поддерживаемые Форматы файлов для Импорта и Экспорта.

[data,Fs] = webread(___) аудиоданные чтений из веб-сервиса, заданного url и, возвращают аудиоданные в data. Можно использовать предыдущие синтаксисы, чтобы возвратить аудиоданные только. Используйте этот синтаксис, чтобы возвратить частоту дискретизации аудиоданных в герц.

webread возвращает аудиоданные, когда ответ HTTP имеет поле заголовка Content-Type, которое задает аудио тип носителя и если формат аудио поддерживается audioread. Для поддерживаемых форматов аудио смотрите Поддерживаемые Форматы файлов для Импорта и Экспорта.

Примеры

свернуть все

Считайте изображение Юпитера от веб-сайта Наследия Хаббла и отобразите его.

url = 'http://heritage.stsci.edu/2007/14/images/p0714aa.jpg';
rgb = webread(url);
whos rgb
  Name         Size                 Bytes  Class    Attributes

  rgb       1000x800x3            2400000  uint8              

Измените размер и отобразите изображение.

rgb = imresize(rgb,0.6);
imshow(rgb)

Любезность Юпитера изображений НАСА, ЕКА и Команды Наследия Хаббла (STScI/AURA). (См. Информационный центр Наследия Хаббла для условий использования.)

Считайте температурные данные для США из Climate Data API World Bank. Постройте температуры с лет 1901–2012.

Считайте данные из World Bank. Этот API возвращает данные как объект JSON.

api = 'http://climatedataapi.worldbank.org/climateweb/rest/v1/';
url = [api 'country/cru/tas/year/USA'];
S = webread(url)
S = 

112x1 struct array with fields:

    year
    data

webread преобразовывает объект JSON в массив структур. Каждая структура содержит год и среднюю температуру в США в течение того года, в градусах Цельсия.

Отобразите температуру в течение первого года.

S(1)
ans = 

    year: 1901
    data: 6.6187

Постройте средние температуры. Конкатенация S.year и S.data в массивы и строит их.

year = [S.year];
data = [S.data];
plot(year,data)
xlabel('Year');
ylabel('Temperature (Celsius)');
title('USA Average Temperatures')
axis tight

API и любезность данных World Bank: Climate Data API. (См. World Bank: Climate Data API для получения дополнительной информации о API и World Bank: Условия использования.

Ищите Обмен файлами файлы, загруженные в течение прошлых семи дней, которые содержат слово Simulink®.

Задайте параметры запроса. webread добавляет имена параметра запроса веб-сервиса и значения к URL. Веб-сервис File Exchange задает term и параметры запроса duration, не функцию webread.

url = 'https://www.mathworks.com/matlabcentral/fileexchange/';
data = webread(url,'term','simulink','duration',7);

webread возвращает HTML для страницы результата поиска как символьный массив.

Задайте дополнительную опцию запроса, чтобы считать данные от Climate Data API World Bank до символьного массива.

Создайте объект weboptions и установите его ContentType на 'text'. Функция webread преобразовывает объект JSON в символьный массив вместо массива структур. Отобразите начало символьного массива.

api = 'http://climatedataapi.worldbank.org/climateweb/rest/v1/';
url = [api 'country/cru/tas/year/USA'];
options = weboptions('ContentType','text');
data = webread(url,options);
data(1:62)
ans =

[{"year":1901,"data":6.6187487},{"year":1902,"data":6.4643273}

API и любезность данных World Bank: Climate Data API. (См. World Bank: Climate Data API для получения дополнительной информации о API и World Bank: Условия использования.

Отправьте запрос POST HTTP, чтобы искать Обмен файлами файлы, загруженные в течение прошлых семи дней, которые содержат слово Simulink.

url = 'https://www.mathworks.com/matlabcentral/fileexchange/';
options = weboptions('RequestMethod','post');
data = webread(url,'term','simulink','duration',7,options);

Много веб-сервисов предоставляют метод POST для того, чтобы запросить данные в дополнение к GET.

Считайте Синий Мрамор: изображение Следующего поколения на декабрь 2004 от Наблюдения Земли НАСА (NEO) сервис веб-карт.

Задайте дату требуемого изображения с объектом datetime. Задайте свойство Format D так, чтобы формат совпадал с форматом, требуемым веб-сервисом.

url = 'http://neowms.sci.gsfc.nasa.gov/wms/wms';
D = datetime(2004,12,01,'Format','yyyy-MM-dd');
rgb = webread(url,'Time',D, ...
     'Service','WMS','Layers','BlueMarbleNG-TB','CRS','CRS:84', ...
     'Format','image/jpeg','Height',256,'Width',512, ...
     'BBOX','-180.0,-90.0,180.0,90.0','Version','1.3.0','Request','GetMap');
imshow(rgb)

webread преобразовывает объекты datetime так, чтобы они могли быть значениями параметров запроса веб-сервиса. Все пары "имя-значение" в примере обеспечивают параметры запроса, заданные сервисом веб-карт NEO.

Синий Мрамор: Следующее поколение + Топография и Батиметрия отображает любезность Наземной Обсерватории НАСА. Доступ к формированию изображений и услугам, предоставленным сервисом веб-карт (WMS) NEO. (См. наблюдения Земли НАСА для кредита и условий использования. Для параметров запроса WMS ищите сайт наблюдений Земли НАСА, WMS 1.3.0 Возможности.)

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

свернуть все

URL к веб-сервису, заданному как вектор символов или скаляр строки. Веб-сервис реализует интерфейс RESTful. Смотрите УСПОКОИТЕЛЬНЫЙ для получения дополнительной информации.

Пример: webread('https://www.mathworks.com/matlabcentral') читает веб-страницу и возвращает ее HTML как символьный массив.

Параметры запроса веб-сервиса, заданные как одна или несколько пар аргументов значения имени. Аргумент QueryName должен задать имя параметра запроса, как вектор символов или представить скаляр в виде строки. Аргумент QueryValue должен быть вектором символов, скаляром строки, или числовым, логическим, или значение datetime, которое задает значение параметра запроса. Числовой, логический, и значения datetime может быть в массивах. Веб-сервис задает пары "имя-значение", которые он принимает как часть запроса.

Когда вы задаете QueryValue как объект datetime, необходимо задать его свойство Format так, чтобы это было сопоставимо с форматом, требуемым веб-сервисом. Если свойство Format включает часовой пояс или смещение, и объект datetime не зонируется, то webread задает 'Local' как часовой пояс.

Когда QueryValue содержит несколько значений в массиве, вы можете должны быть указать, что свойство ArrayFormat объекта weboptions сформироваться - кодирует массив, как задано веб-сервисом.

Пример: webread('https://www.mathworks.com/matlabcentral/fileexchange/','term','webread') получает список файлов, загруженных на Обмен файлами, которые содержат слово webread.

Дополнительные опции запроса HTTP, заданные как объект weboptions.

Можно задать свойство ContentType объекта weboptions и передать объект как входной параметр к webread. Затем webread возвращает data как тот тип вывода. Таблица приводит допустимые типы контента, которые можно задать в объекте weboptions.

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

'OutputType'

'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® Document Object Model (DOM) узел для text/xml или содержимого application/xml. Если не заданный, функция возвращает содержание XML как вектор символов.

'raw'

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

Смотрите weboptions для всех опций запроса, которые являются свойствами weboptions.

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

свернуть все

Чтение содержимого из веб-сервиса, возвращенного как скаляр, массив, структура или таблица.

Палитра сопоставлена с индексируемым изображением, возвращенным как числовой массив.

Альфа-каналы сопоставлены с индексируемым изображением, возвращенным как числовой массив.

Частота дискретизации аудиоданных в герц, возвращенном в виде положительного числа.

Больше о

свернуть все

RESTful

REST означает представительную передачу состояния, общий архитектурный стиль для веб-сервисов. УСПОКОИТЕЛЬНЫЕ интерфейсы предоставляют стандартные методы HTTP, такие как GET, PUT, POST или DELETE.

Советы

  • Для функциональности, не поддержанной функциями веб-сервисов RESTful, смотрите Интерфейс HTTP.

  • webread поддерживает методы HTTP GET и POST. Много веб-сервисов обеспечивают и GET и методы POST, чтобы запросить данные. Чтобы отправить запрос POST HTTP, задайте свойство RequestMethod options как 'post'. Однако webread помещает опции запроса в url, не в теле сообщения запроса. Чтобы поместить запрос в тело, используйте webwrite.

  • Для запросов POST HTTP функция webread поддерживает только тип носителя application/x-www-form-urlencoded. Чтобы отправить запрос POST с содержимым любого другого интернет-типа носителя, используйте webwrite.

  • Эта функция не исследует содержимое документа, чтобы определить, как обработать ее. Например, HTML и XML-документы часто содержат тег <meta>, который задает кодировку символов документа. Если кодирование отличается от кодирования webread по умолчанию, то задайте правильную опцию CharacterEncoding в weboptions.

Введенный в R2014b

Для просмотра документации необходимо авторизоваться на сайте