webread

Чтение содержимого веб-сервиса RESTful

Описание

пример

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

Веб-сервис предоставляет RESTful, который возвращает данные, форматированные как тип интернет-носителя, такой как JSON, XML, изображение или текст.

пример

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

пример

data = webread(___,options) добавляет другие опции запроса, заданные 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. Можно использовать предыдущие синтаксисы, чтобы вернуть только аудио данных. Используйте этот синтаксис, чтобы вернуть частоту дискретизации аудио данных в hertz.

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

Примеры

свернуть все

Прочитайте изображение Юпитера с сайта Hubble Heritage и отобразите его.

url = 'https://hubblesite.org/uploads/image_file/image_attachment/14836/compass_large_web.jpg';
rgb = webread(url);
whos rgb
  Name        Size                Bytes  Class    Attributes

  rgb       500x500x3            750000  uint8              

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

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

Изображение Юпитера предоставлено НАСА, ЕКА и Hubble Heritage Team (STScI/AURA). Условия использования см. в Институте космических телескопов.

Считайте данные о температуре для США из World Bank Climate Data API. График температуры с 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. (Для получения дополнительной информации об API см. World Bank: Climate Data 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. (Для получения дополнительной информации об API см. World Bank: Climate Data API, и World Bank: Условия использования.)

Прочитайте изображение синего мрамора: Следующая Генерация для декабря 2004 года с Сервисом веб-карт NASA Earth Observation (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.

Голубой мрамор: следующая генерация + топография и батиметрия изображение предоставлено НАСА Earth Observatory. Доступ к изображениям и услугам, предоставляемым Сервису веб-карт ОСЗ (WMS). (Смотрите наблюдения Земли НАСА для кредита и условий использования. Для параметров запроса WMS выполните поиск на сайте NASA Earth Observations, WMS 1.3.0 Capabilities.)

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

свернуть все

URL-адрес веб-сервиса, заданный как вектор символов или строковый скаляр. Включите протокол передачи. Только http и https поддерживаются. Веб-сервис реализует интерфейс RESTful. Для получения дополнительной информации см. RESTful.

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

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

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

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

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

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

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

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 для всех опций запроса, которые weboptions свойства.

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

свернуть все

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

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

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

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

Подробнее о

свернуть все

УСПОКОИТЕЛЬНЫЙ

REST означает передачу представительного состояния, общий архитектурный стиль для веб-сервисов. RESTful-интерфейсы обеспечивают стандартные HTTP-методы, такие как GET, PUT, POST или DELETE.

Совет

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

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

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

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

Введенный в R2014b