webread

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

Описание

пример

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 'MediaType' . Чтобы отправить запрос POST с содержимым любого другого интернет-типа носителя, используйте webwrite.

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

Введенный в R2014b