Класс: matlab.net.http. RequestMessage
Пакет: matlab.net.http
Отправьте запрос HTTP передают и получают ответ
[response,completedrequest,history] = send(request,uri)[response,completedrequest,history] = send(request,uri,options,consumer)отправляет сообщение [response,completedrequest,history] = send(request,uri) request в веб-сервис, заданный uri, и возвращает response, если таковые имеются. Если никакое свойство request.Method не задано, то метод send устанавливает свойство на 'GET'.
По умолчанию send проверяет семантическую правильность заголовков и другие части сообщения и завершает uri. Метод также заполняет любые необходимые поля заголовка для правильно сформированного запроса. Если request.Body является MessageBody, свойство Payload которого уже не установлено, то send вызывает соответствующие функции преобразования, чтобы преобразовать любой request.Body.Data в вектор байтов, представляющих полезную нагрузку HTTP, которая будет отправлена, как описано для MessageBody.Data Данные. Обычно запрос 'GET' не содержит данные, но метод отправляет Body независимо от RequestMethod. Если сервер возвращает данные в своем ответе, и никакой consumer не задан, то send преобразовывает это данные в данные MATLAB® и сохраняет его в response.Body.Data Данные. Смотрите MessageBody.Data для получения дополнительной информации о преобразовании данных.
Если request.Body является ContentProvider, то MATLAB вызывает провайдера, чтобы заставить данные быть отправленными.
Если заголовок уже содержит поле, которое обычно добавляет метод, то send проверяет, что поле имеет ожидаемое значение. Можно заменить поведение по умолчанию можно следующим образом.
Чтобы отправить сообщение, как без любой проверки или изменения заголовка, устанавливает свойство request.Completed на true перед отправкой. Если бы вы использовали метод complete, чтобы завершить запрос, то необходимо задать то же значение uri и options, который вы предоставили complete, или могут быть непредсказуемые результаты. Даже если Completed будет установлен, незаданные поля в RequestLine будут заполнены в значениями по умолчанию.
Чтобы позволить методу send проверять и изменять заголовок, но подавлять добавление конкретного поля заголовка, которое могут добавить send или ContentProvider, добавляют что поле к request.Header с пустым значением ([]). Например, send автоматически добавляет поле заголовка Агента пользователя. Если вы не хотите это поведение, то добавьте HeaderField('User-Agent') к заголовку. Поля заголовка с пустыми значениями не включены в сообщение. Поля Host и Connection не могут быть подавлены.
Чтобы заменить значение, которое метод send добавляет для данного поля заголовка, добавьте свой собственный экземпляр того поля прежде, чем отправить или завершить сообщение. Однако это не заменит поле заголовка, которое может добавить ContentProvider. Однако для некоторых типов поля заголовка, send может все еще отклонить сообщение, если значение не допустимо. Чтобы предотвратить любую проверку значения данного поля или заменить поле, которое добавляет ContentProvider, добавляет, поле типа matlab.http.field.GenericField к заголовку с желаемым именем и значением. Ни send, ни ContentProvider не добавят полей заголовка с именами, равными никаким заголовкам GenericField, и не проверят их правильность.
Чтобы отправить необработанные двоичные данные без преобразования, можно вставить вектор uint8 или в Body.Data или в Body.Payload. Единственная разница - то, что данные в Body.Data подвергаются преобразованию на основе поля Content-Type в сообщении, в то время как Body.Payload не. send всегда пытается преобразовать непустой Body.Data, если Body.Payload пуст, даже если Completed уже установлен. Смотрите MessageBody.Data для правил преобразования.
предоставляет дополнительные возможности для обработки сообщения [response,completedrequest,history] = send(request,uri,options,consumer) response и request.
Всегда проверяйте свойство response Status определить, был ли запрос принят. Состояние ошибки:
MException — Сообщение не хорошо формируется и не может быть завершено.
HTTPException — Сообщение завершается, но веб-сервис недостижим или не отвечает в период тайм-аута, заданный в options.
Свойство Status response — веб-сервис отвечает и возвращает ошибочное состояние HTTP. send обычно возвращается, устанавливая свойство Status на ошибку, возвращенную в сервер.
HTTPException | HTTPOptions | LogRecord | RequestMessage.complete | matlab.net. URI | matlab.net.http.field. GenericField | matlab.net.http. iO . ContentConsumer | matlab.net.http. iO . ContentProvider