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 объект.

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

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

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

расширить все

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

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

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

Признаки

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