webwrite

Запишите данные к веб-сервису RESTful

Синтаксис

response = webwrite(url,PostName1,PostValue1,...,PostNameN,PostValueN)
response = webwrite(url,data)
response = webwrite(___,options)

Описание

пример

response = webwrite(url,PostName1,PostValue1,...,PostNameN,PostValueN) содержимое записей к веб-сервису, заданному url и, возвращает response. Входные параметры PostName1,PostValue1,...,PostNameN,PostValueN задают содержимое как пары "имя-значение". форма webwrite - кодирует пары "имя-значение" в теле запроса POST HTTP к веб-сервису. Веб-сервис задает response.

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

пример

response = webwrite(url,data) сообщения data к веб-сервису, заданному url и наборами тип носителя на основе data.

Входной параметр data задает содержимое как закодированный формой символьный массив. webwrite помещает data в орган по запросу POST HTTP к веб-сервису. Веб-сервис задает response.

пример

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

Чтобы записать содержимое как интернет-тип носителя кроме закодированного формой символьного массива ('application/x-www-form-urlencoded'), задайте свойство MediaType options.

Чтобы запросить данные с запросом POST HTTP и считать ответ с функцией, задайте свойство ContentReader options как указатель на функцию. Если вы задаете указатель на функцию, которая возвращает несколько выходных аргументов, webwrite возвращает все выходные аргументы.

Примеры

свернуть все

Запишите, что номер к каналу питается сервером ThingSpeak и считал его назад.

Чтобы запустить этот код, создайте учетную запись ThingSpeak. Вызовите webwrite с помощью ключа API Записи и ID Канала из учетной записи ThingSpeak. Именем поля по умолчанию является 'field1'.

thingSpeakURL = 'http://api.thingspeak.com/';
thingSpeakWriteURL = [thingSpeakURL 'update'];
writeApiKey = 'Your Write API Key';
fieldName = 'field1';
fieldValue = 42;
response = webwrite(thingSpeakWriteURL,'api_key',writeApiKey,fieldName,fieldValue)

Если этот вызов webwrite является первым обновлением вашего канала ThingSpeak, response является 1.

Считайте назад номер, который вы записали в свой канал. ThingSpeak обеспечивает различный URL, чтобы получить последнюю запись в ваш канал. Ваш ID Канала является частью URL.

channelID = num2str(Your Channel ID);
thingSpeakReadURL = [thingSpeakURL 'channels/' channelID '/fields/' fieldName '/last'];
data = webread(thingSpeakReadURL,'api_key',writeApiKey)
data =

42

Запишите номер, когда закодированный формой символьный массив к каналу питается сервером ThingSpeak и считал его назад.

Чтобы запустить этот код, создайте учетную запись ThingSpeak. Вызовите webwrite с помощью ключа API Записи и ID Канала из учетной записи ThingSpeak. Закодируйте свой КЛЮЧ API Записи и номер как закодированный формой символьный массив. Именем поля по умолчанию является 'field1'.

thingSpeakURL = 'http://api.thingspeak.com/';
thingSpeakWriteURL = [thingSpeakURL 'update'];
writeApiKey = 'Your Write API Key';
data = 42;
data = num2str(data);
data = ['api_key=',writeApiKey,'&field1=',data];
response = webwrite(thingSpeakWriteURL,data)

Если этот вызов webwrite является первым обновлением вашего канала ThingSpeak, response является 1.

Считайте назад номер, который вы записали в свой канал. ThingSpeak обеспечивает различный URL, чтобы получить последнюю запись в ваш канал. Ваш ID Канала является частью URL.

channelID = num2str(Your Channel ID);
thingSpeakReadURL = [thingSpeakURL 'channels/' channelID '/fields/field1/last'];
data = webread(thingSpeakReadURL,'api_key',writeApiKey)
data =

42

Запишите номер, когда объект JSON к каналу питается сервером ThingSpeak и считал ответ как объект JSON.

Чтобы запустить этот код, создайте учетную запись ThingSpeak. Вызовите webwrite с помощью ключа API Записи и ID Канала из учетной записи ThingSpeak. Создайте структуру, где поля являются вашим КЛЮЧОМ API Записи и номером. Именем поля по умолчанию является 'field1'. Задайте тип носителя как 'application/json'.

thingSpeakURL = 'http://api.thingspeak.com/update.json';
writeApiKey = 'Your Write API Key';
data = 42;
data = struct('api_key',writeApiKey,'field1',data);
options = weboptions('MediaType','application/json');
response = webwrite(thingSpeakURL,data,options)
response = 

    channel_id: Your Channel ID
        field1: 42
        field2: []
        field3: []
        field4: []
        field5: []
        field6: []
        field7: []
        field8: []
    created_at: '2014-11-14T20:08:14Z'
      entry_id: 1
        status: []
      latitude: []
     longitude: []
     elevation: []
      location: []

Как ответ webwrite получает объект JSON, который содержит номер, который вы записали в свой канал ThingSpeak. webwrite преобразовывает объект JSON и возвращает его как структуру в response.

Запишите, что номер и определенная дата к каналу питаются сервером ThingSpeak. Считайте номер и датируйтесь.

Чтобы запустить этот код, создайте учетную запись ThingSpeak. Вызовите webwrite с помощью ключа API Записи и ID Канала из учетной записи ThingSpeak. Задайте дату записи канала с объектом datetime.

thingSpeakURL = 'http://api.thingspeak.com/';
thingSpeakWriteURL = [thingSpeakURL 'update'];
writeApiKey = 'Your Write API Key';
fieldName = 'field1';
fieldValue = 42;
D = datetime(2015,3,22,8,15,30,'Format','yyyy-MM-dd HH:mm:ss');
response = webwrite(thingSpeakWriteURL,'api_key',writeApiKey,...
    fieldName,fieldValue,'created_at',D)

Если этот вызов webwrite является первым обновлением вашего канала ThingSpeak, response является 1.

Считайте назад последнюю запись в свой канал. ThingSpeak обеспечивает различный URL, чтобы получить последнюю запись в ваш канал. Добавьте last.json к URL, чтобы получить данные как объект JSON. Ваш ID Канала является частью URL.

channelID = num2str(Your Channel ID);
thingSpeakReadURL = [thingSpeakURL 'channels/' channelID '/fields/' ...
    fieldName '/last.json'];
data = webread(thingSpeakReadURL,'api_key',writeApiKey)
data = 

    created_at: '2015-03-22T08:15:30Z'
      entry_id: 1
        field1: '42'

Дата в поле created_at совпадает с датой, заданной в D.

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

свернуть все

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

Параметры сообщения веб-сервиса, заданные как одна или несколько пар аргументов значения имени. Аргумент PostName должен задать имя параметра сообщения. Аргумент PostValue должен быть вектором символов, скаляром строки, или числовым, логическим, или значение datetime, которое задает значение параметра сообщения. Числовой, логический, и значения datetime может быть в массивах. Веб-сервис задает пары "имя-значение", которые он принимает как часть запроса. webwrite кодирует пары "имя-значение" как закодированный формой символьный массив в органе по запросу POST HTTP и устанавливает тип контента на application/x-www-form-urlencoded по умолчанию.

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

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

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

Данные, чтобы отправить на веб-сервис, заданный как вектор символов, скаляр строки, или как числовой, ячейка, логическая, или структура для значения MediaType 'json', или как Объектная модель документа для значения MediaType 'XML'. Если data является символьной строкой или вектором символов, то webwrite отправляет его без преобразования. Все другие типы преобразованы на основе значения weboptions.MediaType. Для полного списка типов носителей смотрите интернет-Типы носителей.

Пример: webwrite('https://www.mathworks.com/matlabcentral/fileexchange/','term=webwrite&duration=7') получает список файлов, загруженных на Обмен файлами в течение прошлых 7 дней, которые содержат слово webwrite. Веб-сервис File Exchange задает параметры duration и term.

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

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

свернуть все

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

Больше о

свернуть все

RESTful

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

Советы

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

  • Функция webwrite пишет входные параметры PostName,PostValue как закодированные формой символьные массивы. Если вы также задаете входной параметр options, то его свойством MediaType должен быть 'application/x-www-form-urlencoded'.

  • webwrite не может преобразовать объекты datetime в JSON, потому что JSON не задает стандартный формат даты.

  • webwrite всегда помещает параметры запроса PostName,PostValue в тело сообщения независимо от значения свойства RequestMethod options.

Представленный в R2015a