Класс: matlab.net.http. RequestMessage
Пакет: matlab.net.http
Подтвердите и завершите сообщение запроса HTTP без отправки
[completedrequest,target] = complete(request,uri)
[completedrequest,target] = complete(request,uri,options)
добавляет и подтверждает поля заголовка сообщения и преобразовывает данные как метод [completedrequest,target] = complete(request,uri)
RequestMessage.send
, но не отправляет сообщение. complete
принимает объект HTTPOptions
по умолчанию определить, как завершить и подтвердить запрос.
Используйте метод complete
, чтобы исследовать содержимое сообщения запроса для отладки целей.
Чтобы заполнить и подтвердить свойства Header
и RequestLine
, этот метод игнорирует свойство Completed
в request
. Метод всегда возвращает измененный completedrequest
. Если request
не завершается, то ошибки метода. Можно использовать это поведение, чтобы определить, допустим ли вручную завершенный запрос.
Если Completed
не установлен, то этот метод всегда преобразовывает Data
в request.Body
и хранит результат в completedrequest.Body.Payload
, перезаписывая любое предыдущее содержимое Payload
. Это означает, что и Data
и Payload
в completedrequest.Body
содержат значения. Это отличается от поведения send
, который не сохраняет Payload
, если HTTPOptions.SavePayload
не установлен. Если сообщение содержит большой объем данных, то использование памяти и время преобразования может быть фактором.
Однако, если request.Body
содержит ContentProvider
, то complete
не вызывает провайдера, чтобы создать данные. completedrequest.Body
содержит тот же ContentProvider
.
предоставляет дополнительные возможности для проверки и завершения сообщения запроса.[completedrequest,target] = complete(request,uri,options)
Если вы намереваетесь отправить completedrequest
, чтобы избежать стоимости повторной валидации, отправьте его в target
вместо uri
, с помощью того же options
. Зависящие от времени поля заголовка, такие как Date
, которые добавляются методом send
, не обновляются, когда отправлено снова с помощью completedrequest
.
Завершенный запрос не добавляет полей заголовка авторизации, которые могут быть необходимы для аутентификации к серверу или прокси, даже если свойство Authenticate
установлено в options
. Не может быть возможно определить то, чего сервер требует, не отправляя сообщение. Чтобы видеть, что было отправлено в обмене аутентификации, исследуйте аргументы completedrequest
или history
, возвращенные методом send
.
Чтобы неоднократно отправлять то же сообщение запроса, отправьте completedrequest
. В противном случае, если вы отправляете request
, затем MATLAB неоднократно подтверждает сообщение. Также обязательно задайте target
как URI и тот же входной параметр options
. Зависящие от времени поля заголовка, такие как Дата, которую добавляет метод send
, не обновляются при отправке completedrequest
.
Чтобы завершить сообщение, не преобразовывая данные, установите свойство Completed
на true
прежде, чем вызвать метод complete
. Если Completed
верен, и request.Body
является объектом MessageBody
, то метод complete
принимает, что текущая стоимость request.Body.Payload
является желаемой, даже если это пусто.
Это поведение отличается от метода send
. Если request.Body.Payload
пуст, то send
преобразовывает и отправляет непустые значения Body.Data
, даже если Completed
верен.
HTTPOptions
| MessageBody
| RequestMessage.send
| matlab.net. URI