complete

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

Полный HTTP-заголовок для ContentProvider

Синтаксис

complete(provider,URI)

Описание

complete(provider,URI) увеличивает заголовок сообщения с полями заголовка, требуемыми этим провайдером. RequestMessage.send и RequestMessage.complete методы вызывают этот метод прежде, чем подтвердить заголовок или добавить любые поля по умолчанию, и прежде, чем вызвать другие методы в этом классе за исключением expectedContentLength.

Это - то, где подклассы могут добавить любые поля в Заголовок, которые зависят от содержимого, такого как Тип контента. См. описание Header свойство для получения дополнительной информации.

RequestMessage методы не вызывают этот метод, если сообщение было уже завершено (то есть, если RequestMessage.Completed true). Однако последующее изменение к сообщению после завершения сбрасывает RequestMessage.Completed свойство, позволяя тем методам вызвать этот метод снова. Поэтому провайдеры должны быть подготовлены больше чем к одному вызову complete перед вызовом start. Однажды start был назван, MATLAB® не повторно вызывает complete в этом провайдере, если reusable возвращает true указать, что этот провайдер может быть снова использован для другого сообщения.

ContentProvider это расширяет другой ContentProvider должен сначала вызвать его суперкласс complete метод, чтобы добавить поля заголовка в Header то, что суперклассу нужно, и затем, по возврату, измените те поля при желании.

Поведение по умолчанию этого метода ничего не делает, но выдает исключение, если этот провайдер был запущен и не допускающий повторное использование. Провайдеры, которые заменяют этот метод, должны всегда вызывать свой суперкласс.

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

Этот метод не вызывается на сообщения с Completed набор свойств к true, который обычно означает, что этот метод вызывается только однажды на сообщение, даже если это сообщение снова посылается многократно. Реализации этого метода должны, поэтому, выполнить любую инициализацию, которая должна быть сделана только однажды на сообщение. Дорогостоящая инициализация, которая не должна быть сделана до данных, готова быть отправленной, должен быть выполнен в start метод.

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

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

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

Унифицированный идентификатор ресурса в виде matlab.net.URI объект.

Атрибуты

Accessprotected

Примеры

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

Следующее является шаблоном кодирования для ContentProvider это расширяет SuperclassProvider и добавляет HeaderField myField .

function complete(obj, uri)
            complete@SuperclassProvider(obj, uri);
            field = obj.Header.getFields('My-Field');
            if isempty(field)
                myField = HeaderField('My-Field', value);
                obj.Header = obj.Header.addFields(myField);
            end
Введенный в R2018a