webwrite

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

Описание

пример

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 в теле HTTP POST запрашивают к веб-сервису. Веб-сервис задает 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

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

httpUrl  = 'http://requestserver.mathworks.com';
delim = '&';
pairDelim = '=';
data = 42;
data = num2str(data);
data = ['key', pairDelim, 'value', delim, 'field', pairDelim, data];
responseData = webwrite(httpUrl, data);
disp(responseData);
    dataType: 'application/x-www-form-urlencoded'
    dataSize: '18'

В этом примере показано, как записать запись как объект JSON.

httpsUrl = 'https://requestserver.mathworks.com';
employee(1).Name = 'Jon';
employee(1).Occupation = 'Doctor';
employee(2).Name = 'Sarah';
employee(2).Occupation = 'Engineer';
options = weboptions('MediaType', 'application/json');
responseEmployee = webwrite(httpsUrl, employee, options)
responseEmployee = struct with fields:
    dataType: 'application/json; charset=UTF-8'
    dataSize: '79'

Запишите, что номер и определенная дата к каналу питаются сервером 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.

Запишите два аргумента пары "имя-значение" 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. Смотрите УСПОКОИТЕЛЬНЫЙ для получения дополнительной информации.

Параметры сообщения веб-сервиса в виде одной или нескольких пар аргументов name-value. PostName аргумент должен задать имя параметра сообщения. PostValue аргумент должен быть вектором символов, строковым скаляром, или числовым, логическим, или datetime значение, которое задает значение параметра сообщения. Числовой, логический, и datetime значения могут быть в массивах. Веб-сервис задает пары "имя-значение", которые он принимает как часть запроса. webwrite кодирует пары "имя-значение" как закодированный формой символьный массив в органе по запросу POST HTTP и устанавливает тип контента на 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) получает список файлов, загруженных на Обмен файлами в течение прошлых 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') получает список файлов, загруженных на Обмен файлами в течение прошлых 7 дней, которые содержат слово webwrite. Веб-сервис File Exchange задает term и duration параметры.

Дополнительные опции запроса 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