complete

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

Заполните заголовок HTTP для ContentProvider

Синтаксис

complete(provider,URI)

Описание

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

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

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

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

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

Если этот провайдер не является многопартийным делегатом, и вы хотите включить поле Content-Length в сообщение (тем самым избегая chunked transfer coding), то вы должны вернуть непустое значение в 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