Пакет: matlab.net.http.io
Суперклассы: matlab.net.http.io.GenericConsumer
Помощник по многопользовательским типам содержимого в сообщениях HTTP
Этот потребитель обрабатывает многоточечные ответные сообщения HTTP. Многопутевое сообщение - это сообщение, в поле заголовка Content-Type которого указано значение "multipart", и тело которого содержит одну или несколько частей. Каждая деталь содержит собственный набор полей заголовка, описывающих деталь, наиболее важным из которых является поле Content-Type.
matlab.net.http.io.MultipartConsumer класс является handle класс.
Если вы пишете свой собственный ContentConsumer, он, как правило, будет работать, является ли он потребителем верхнего уровня (указан в качестве третьего аргумента для RequestMessage.send метод) или часть многопутевого сообщения (если указано как «делегат» в MultipartConsumer вызов конструктора). MultipartConsumer делает его кажущимся каждому делегату, как если бы он обрабатывал все ответное сообщение, в то же время фактически собирая результаты в массив ResponseMessages хранится в возвращенном response.Body.Data собственность.
Ниже приведено описание MultipartConsumer поведение:
Каждый раз это MultipartConsumer получает полную часть сообщения от сервера, он анализирует любые заголовки в части, а затем вызывает соответствующего делегата-потребителя, соответствующего полю Content-Type в части. Если в части нет поля Content-Type, он предполагает, что типом является text/plain. Если делегат не может обработать тип, он использует обработку по умолчанию для детали на основе типа содержимого, как описано для GenericConsumer.
MultipartConsumer не вызывает делегата, пока не получит полную часть. MultipartConsumer буферизует данные для детали, а в конце получения детали копирует все видимые свойства ContentConsumer от этого потребителя к делегату, очищает делегата Response.Body, задает делегат Header в заголовок детали, а затем вызывает делегат initialize и start методы, за которыми следует один или несколько вызовов делегата putData метод, содержащий полезную нагрузку детали, за которым следует вызов putData(uint8.empty) для указания конца данных. Если делегат initialize возврат метода false чтобы указать, что он не хочет обрабатывать деталь, полезная нагрузка детали обрабатывается с использованием поведения по умолчанию для типа содержимого детали, как описано для GenericConsumer.
Если делегат start возврат метода [] для указания на отсутствие максимального требуемого размера буфера, MultipartConsumer делает только один звонок putData обеспечивает всю полезную нагрузку компонента с последующим завершением вызова данных. В противном случае он вызывает putData достаточно времени для подачи всей полезной нагрузки в единицах размера буфера.
Если делегат putData метод устанавливает STOP вернуть значение в true указать, что он не хочет больше данных, то MultipartConsumer закрывает соединение для завершения передачи, как если бы сообщение завершилось. Таким образом делегат определяет необходимость обработки оставшейся части исходного сообщения. Если putData возвращает SIZE из [], то сообщение также заканчивается, но с исключением, переданным вызывающему RequestMessage.send.
Если потребитель для детали был указан как дескриптор функции, а не ContentConsumer экземпляр, то функция вызывается только в первый раз, когда потребитель необходим, и впоследствии тот же самый экземпляр потребителя используется для любых соответствующих частей того же самого ответного сообщения. Для деталей, обрабатываемых дескриптором функции, соответствующий ResponseMessage в Response.Body.Data содержит только заголовок для позиции, поскольку функция не имеет доступа к ResponseMessage тело.
Делегированный потребитель может получить доступ к этому потребителю и его свойствам через MyDelegator собственность, хотя это редко необходимо.
consumer = MultipartConsumer( создает types,consumer)MultipartConsumer для обработки указанного types с использованием соответствующего consumer. Можно указать несколько пар аргументов в любом порядке как types1,consumer1,...,typesN,consumerN. MATLAB ® выполняет поиск types в порядке их появления и использования первого совпадения. При отсутствии совпадений между указанными типами MATLAB использует набор потребителей по умолчанию в зависимости от типа.
FileConsumer | GenericConsumer | ImageConsumer | MediaType | MessageBody | MultipartProvider | RequestMessage | ResponseMessage