webwrite

Запись данных в веб-сервис RESTful

Описание

пример

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

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

пример

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

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

пример

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

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

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

Примеры

свернуть все

Напишите номер в канал канала на сервере ThingSpeak и прочитайте его назад.

Чтобы запустить этот код, создайте учетную запись ThingSpeak. Звонить webwrite используя ключ Write API и идентификатор канала из учетной записи 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, чтобы получить последнюю запись в вашем канале. Идентификатор вашего канала является частью URL-адреса.

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

42

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

Чтобы запустить этот код, создайте учетную запись ThingSpeak. Звонить webwrite используя ключ Write API и идентификатор канала из учетной записи ThingSpeak. Закодируйте свой ключ Write API Key и номер как закодированный в форме символьный массив. Имя поля по умолчанию '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, чтобы получить последнюю запись в вашем канале. Идентификатор вашего канала является частью 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 используя ключ Write API и идентификатор канала из учетной записи ThingSpeak. Создайте структуру, в которой поля являются вашим ключом Write 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 используя ключ Write API и идентификатор канала из учетной записи 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. Идентификатор вашего канала является частью 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.

Запишите два аргументов пары "имя-значение" в httpbin.org. Сайт возвращает параметры POST запроса.

uri = matlab.net.URI('http://httpbin.org/post');
res = webwrite(uri,'field1','hello','field2','world');
res.form
ans = 

  struct with fields:

    field1: 'hello '
    field2: 'world'

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

свернуть все

URL-адрес веб-сервиса, заданный как вектор символов или строковый скаляр. Включите протокол передачи. Только http и https поддерживаются. Веб-сервис реализует интерфейс RESTful. Для получения дополнительной информации см. RESTful.

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

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

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

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

Данные для публикации в веб-сервис, заданные как вектор символов, строковый скаляр или как число, камера, логический или структура для MediaType значение 'json', или как модель объекта документа для MediaType значение 'XML'. Если data является символьной строкой или вектором символов, тогда webwrite отправляет его без преобразования. Все другие типы преобразуются на основе weboptions.MediaType значение. Для получения дополнительной информации смотрите https://tools.ietf.org/html/rfc6838.

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

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

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

свернуть все

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

Подробнее о

свернуть все

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

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

Совет

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

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

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

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

Введенный в R2015a