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 method, не обновляются при повторной отправке с помощью completedrequest.

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

расширить все

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

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

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

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

расширить все

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

Завершенный 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. В противном случае, если вы отправляете requestMATLAB неоднократно проверяет сообщение. Также обязательно укажите target как URI и тот же options входной параметр. Зависящие от времени поля заголовка, такие как Дата, которые send метод добавляет, не обновляются при отправке completedrequest.

  • Чтобы завершить сообщение без преобразования данных, установите Completed свойство к true перед вызовом complete способ. Если Completed верно и request.Body является MessageBody объект, затем complete метод принимает, что текущее значение request.Body.Payload является желаемым, даже если он пуст.

    Это поведение отличается от send способ. Если request.Body.Payload пуст, тогда send преобразует и отправляет непустые Body.Data значений, даже если Completed является true.

Введенный в R2016b