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.

Веб-сервис обеспечивает RESTful, который возвращает данные, отформатированные как интернет-тип носителя, такие как 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. Смотрите 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/', 'термин', 'webwrite', 'длительность', 7) получает список файлов, загруженных на Exchange Файла в течение прошлых 7 дней, которые содержат слово webwrite. Веб-сервис Exchange Файла задает параметры длительности и термин.

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

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

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

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

свернуть все

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

Больше о

свернуть все

RESTful

REST означает представительную передачу состояния, общий архитектурный стиль для веб-сервисов. Интерфейсы RESTful предоставляют стандартные методы 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

Была ли эта тема полезной?