exponenta event banner

webread

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

Описание

пример

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

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

пример

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

пример

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

Для возврата данных в качестве определенного типа вывода укажите ContentType имущество options.

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

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

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

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

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

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

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)

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

Прочитайте данные о температуре в США из API Всемирного банка по климатическим данным. Постройте график температур от 1901-2012 лет.

Прочтите данные Всемирного банка. Этот 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 и данные предоставлены Всемирным банком: Climate Data API. (Для получения дополнительной информации об API см. World Bank: Climate Data API и World Bank: Terms of Use.)

Поиск в файловой системе Exchange файлов, отправленных в течение последних семи дней и содержащих слово Simulink ®.

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

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

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

Укажите дополнительный параметр запроса для считывания данных из API данных климата Всемирного банка в символьный массив.

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

Прочитайте изображение «Синий мрамор: следующее поколение» за декабрь 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.

Синий мрамор: Следующее поколение + Топография и батиметрия изображение предоставлено Обсерваторией Земли НАСА. Доступ к изображениям и услугам, предоставляемым Службой веб-картирования ОСЗ (WMS). (См. NASA Earth Observations для оценки и условий использования. Параметры запроса 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 свойство weboptions объект для form-кодирования массива, как указано веб-службой.

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

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

Можно указать ContentType свойство 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'

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

'raw'

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

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

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

свернуть все

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

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

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

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

Подробнее

свернуть все

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

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

Совет

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

  • 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