websave

Сохраните содержимое из веб-сервиса RESTful в файл

Описание

пример

outfilename = websave(filename,url) избавляет содержимое от веб-сервиса, заданного url и записи это к filename. websave функция возвращает полный filename путь как outfilename.

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

пример

outfilename = websave(filename,url,QueryName1,QueryValue1,...,QueryNameN,QueryValueN) добавляет параметры запроса к url, как задано одной или несколькими парами аргументов name-value. Веб-сервис задает параметры запроса.

пример

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

websave методы HTTP GET и POST поддержек. Чтобы отправить запрос POST HTTP, задайте RequestMethod свойство options как 'post'. Много веб-сервисов обеспечивают и GET и методы POST, чтобы запросить данные.

Примеры

свернуть все

В этом примере показано, как сохранить образ на веб-сервере к файлу.

Найдите изображение

httpsUrl = "https://requestserver.mathworks.com";
imageUrl = strcat(httpsUrl, "/assets/computerVision.jpg");

Сохраните образ к файлу

imageFile = "computerVision.jpg";
imageFileFullPath = websave(imageFile, imageUrl);

В этом примере показано, как сохранить данные из файла веб-сервера.

httpsUrl = "https://requestserver.mathworks.com";
dataUrl = strcat(httpsUrl, "/assets/weatherStation.csv");
weatherFile = "weatherData.csv";
weatherFileFullPath = websave(weatherFile, dataUrl);

В этом примере показано, как сохранить данные к текстовому файлу.

httpUrl  = 'http://requestserver.mathworks.com';
employeeUrl = strcat(httpUrl, '/employee');
employeeFile = 'employeeData.txt';
employeeFileFullPath = websave(employeeFile, employeeUrl, 'occupation', 'Software Engineer');
employeeData = jsondecode(fileread(employeeFileFullPath))
employeeData=2×1 struct array with fields:
    id
    firstName
    lastName
    occupation
    age
    city

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

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

url = 'http://neowms.sci.gsfc.nasa.gov/wms/wms';
D = datetime(2004,12,01,'Format','yyyy-MM-dd');
filename = 'BlueMarble.jpg';
outfilename = websave(filename,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')
outfilename =

C:\Libraries\Documents\BlueMarble.jpg

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

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

Считайте данные JSON из веб-сайта и сохраните в файле test.txt.

uri = matlab.net.URI('http://httpbin.org/get');
websave('test.txt',uri,weboptions('ContentType','json'));

Считайте текст из файла в структуру данных JSON.

js = jsondecode(fileread('test.txt'))
js = 

  struct with fields:

       args: [1×1 struct]
    headers: [1×1 struct]
     origin: '144.444.4.4'
        url: 'http://httpbin.org/get'

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

свернуть все

Имя файла, чтобы сохранить содержимое в в виде вектора символов или строкового скаляра. websave сохраняет содержимое, как. websave игнорирует options.ContentType и options.ContentReader, даже если эти свойства установлены.

Пример: websave('matlabcentral.html','https://www.mathworks.com/matlabcentral') читает веб-страницу и сохраняет ее HTML в файл matlabcentral.html.

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

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

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

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

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

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

Больше о

свернуть все

RESTful

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

Советы

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

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

  • Чтобы задать настройки прокси-сервера, смотрите Аутентификацию Прокси-сервера.

Введенный в R2014b