завершенный

Класс: 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 и добавляет myField HeaderField.

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