getData

Класс: matlab.net.http.io.ContentProvider
Пакет: matlab.net.http.io

Следующий буфер данных, который отправит в HTTP, запрашивает сообщение от ContentProvider

Синтаксис

[data,stop] = getData(provider,length)

Описание

[data,stop] = getData(provider,length) возвращает буфер данных, чтобы отправить в сообщении запроса HTTP.

MATLAB® вызывает этот метод многократно во время RequestMessage.send, после вызова start, и отправляет каждый буфер data к серверу сразу. Если сообщение разделяется на блоки (например, expectedContentLength возвращенный пустой и нет никакого поля Content-Length в сообщении), затем размер фрагмента является длиной data.

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

развернуть все

Контент-провайдер в виде matlab.net.http.io.ContentProvider объект.

Длина данных, в виде которых провайдер должен возвратиться для оптимального интерактивного поведения дважды.

Значение является предложенной длиной на основе значения preferredBufferSize, если задано, и внутренние буферные размеры. Провайдер может, однако, возвратиться больше или меньше байтов, и если ваш провайдер хочет отправить фрагменты определенных размеров, это может проигнорировать length. MATLAB не гарантирует что любое определенное значение length задан, но это всегда - конечное число, больше, чем нуль. Возврат большого буфера data может заставить MATLAB блокироваться в течение долгого времени при отправке данных, во время которых вы не можете прервать операцию с помощью Ctrl+C. Эта сила не быть проблемой для неинтерактивных приложений, где более крупные буферы эффективны.

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

развернуть все

Следующий буфер данных, возвращенных как uint8 вектор или пустой. Если data пусто и stop не установлен, затем MATLAB вызывает этот метод неоднократно, чтобы получить больше данных (после того, как маленькая задержка). Чтобы закончить сообщение, возвратите stop=true. Однако можно также выдать исключение, чтобы прервать сообщение, которое возвращено в вызывающую сторону RequestMessage.send.

Если поле заголовка Довольной Длины было включено в заголовок сообщения или возвращено expectedContentLength (то есть, сообщение не отправляется с помощью разделенного на блоки кодирования передачи), затем общее количество байтов, возвращенных в data по множественным вызовам, заканчивающимся stop=true, должно быть равно тому номеру. Если stop=true возвращен преждевременно, или общая сумма data возвращенный больше того номера, затем MATLAB выдает исключение и закрывает связь.

Укажите, закончить ли передачу, возвращенную как логическое, которое должен установить провайдер. Если false, затем MATLAB вызывает этот getData снова, чтобы получить больше данных, когда это готово отправить следующий буфер. Если true, затем это указывает, что провайдер больше не имеет данных, чтобы отправить, вне того, что возвращено в data, и говорит MATLAB заканчивать сообщение. Это - нормальный способ закончить RequestMessage и подготовьте MATLAB, чтобы получить ResponseMessage.

Атрибуты

Accesspublic
Введенный в R2018a