Класс: matlab.net.http.RequestMessage
Пакет: matlab.net.http
Отправьте запрос HTTP передают и получают ответ
[ отправляет 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 Status свойство определить, был ли запрос принят. Состояние ошибки:
MException — Сообщение не хорошо формируется и не может быть завершено.
HTTPException — Сообщение завершается, но веб-сервис недостижим или не отвечает в период тайм-аута, заданный в options.
Status свойство response — Веб-сервис отвечает и возвращает ошибочное состояние HTTP. send обычно возвращается, устанавливая Status свойство к ошибке, возвращенной в сервер.
HTTPException | HTTPOptions | LogRecord | complete | matlab.net.URI | matlab.net.http.field.GenericField | matlab.net.http.io.ContentConsumer | matlab.net.http.io.ContentProvider