Класс: 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