complete

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

Подтвердите и завершите сообщение запроса HTTP без отправки

Описание

[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.

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

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

Запросите сообщение в виде matlab.net.http.RequestMessage объект.

Передайте место назначения в виде matlab.net.URI возразите или строка или вектор символов, приемлемый для конструктора.

Дополнительные опции в виде matlab.net.http.HTTPOptions объект, для обработки запроса и сообщений ответа.

Выходные аргументы

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

Завершенный и подтвержденный запрос, возвращенный как matlab.net.http.RequestMessage объект. Completed свойство верно.

Завершенный URI, возвращенный как matlab.net.URI объект.

Примеры

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

Создайте сообщение запроса для вымышленного веб-сайта. Затем подтвердите и завершите запрос, не отправляя его.

request = matlab.net.http.RequestMessage();
url = 'myschool.edu/campus.jpg';
options = matlab.net.http.HTTPOptions('SavePayload',true);
[request,url] = complete(request,url,options);
show(request)
GET /campus.jpg HTTP/1.1
Host: myschool.edu
User-Agent: MATLAB/9.0.0.366741 (R2016b)
Date: Wed, 13 Jul 2016 17:21:08 GMT
Connection: close

MATLAB® отображает User-Agent и Date значения, относящиеся к вашей системе.

Покажите обновленный URL.

string(url)
ans = http://myschool.edu/campus.jpg

Ограничения

  • Завершенный запрос не добавляет полей заголовка авторизации, которые могут быть необходимы для аутентификации к серверу или прокси, даже если 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 верно.

Смотрите также

| | |

Введенный в R2017b