getData

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

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

Синтаксис

[данные, остановитесь] = getData (провайдер, длина)

Описание

[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.

Атрибуты

Доступpublic

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

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