exponenta event banner

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.

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

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

Признаки

Accesspublic
Представлен в R2018a