Main Content

matlab.net.http.RequestMessage 类

包: matlab.net.http
超类: matlab.net.http.Message

HTTP 请求方法

说明

使用 RequestMessage 类对发送给服务器进行处理的 HTTP 请求消息进行格式化。使用 send 方法发送消息,或在发送消息之前使用 complete 方法验证消息。这些方法将填写任何必要的标头字段和其他消息属性。

类属性

Sealed
true

有关类属性的信息,请参阅类属性

创建对象

说明

obj = matlab.net.http.RequestMessage 创建具有默认值的请求消息。当您发送或完成消息时,默认的 Method 属性为 RequestMethod.GET

示例

obj = matlab.net.http.RequestMessage(method,header,body) 指定一个或多个可选的消息属性。您可以省略尾随参数,并使用 [] 指定任何占位符。

obj = matlab.net.http.RequestMessage(requestLine,header,body)RequestLine 属性设置为 requestLine。如果您需要控制请求行的内容,可以使用此语法。例如,要向代理显式发送消息,请将 RequestLine.RequestTarget 属性设置为完整的 URI。否则,MATLAB 将基于您的代理设置来选择代理,而 send 方法会将 RequestTarget 设置为 URI 的 Path 属性。

obj = matlab.net.http.RequestMessage(requestLine,header,provider)matlab.net.http.io.ContentProvider 获取消息主体数据。

属性

全部展开

请求行,指定为 matlab.net.http.RequestLine 对象或者包含方法、目标和协议版本的字符串或字符向量。当您发送消息时,将根据您指定的方法和 URI 自动创建请求行。如果您显式设置此属性,将使用其内容作为请求行。值可以设置为 RequestLine 对象,或者设置为可解析并转换为 RequestLine 对象的字符串。

示例: 'GET HTTP/1.1'

属性:

GetAccess
public
SetAccess
public
Dependent
true

请求方法,指定为 matlab.net.http.RequestMethod 枚举或者代表请求方法的字符串或字符向量。要发送消息,请设置 RequestMessage.Method 属性或 RequestLine.Method 属性。

示例: 'GET'

属性:

GetAccess
public
SetAccess
public
Dependent
true

消息标头,指定为 matlab.net.http.HeaderField 对象或 HeaderField 对象的向量。当您设置 Header 属性时,MATLAB® 会检查标头的各个字段,以确保它们适用于该消息类型。RequestMessage sendcomplete 方法将填写任何必需的标头字段,以生成格式正确的请求。

属性:

GetAccess
public
SetAccess
public

消息主体,指定为 matlab.net.http.MessageBody 对象、matlab.net.http.io.ContentProvider 或指定为 MessageBody 构造函数可接受的数据。默认情况下,Body 为空(设置为 [])。包含 Body 属性的请求消息通常使用 'PUT''POST' 等方法,而不是使用默认值 'GET',但此转换并不是强制的。

在已完成或已收到的消息中,如果消息有一个 ContentTypeField 标头字段,则将 MessageBody.ContentType 属性设置为该值。否则,ContentType 不变或为空。

属性:

GetAccess
public
SetAccess
public

消息是否完成,指定为 truefalsetrue 值表示消息已完成。

在完成以下操作后,负责验证消息的方法(RequestMessage.sendRequestMessage.complete)会将 Completed 属性设置为 true

  • 确定消息有效。

  • 完成处理,例如添加必需的标头字段并转换数据。

如果此属性为 true,则这些方法不会修改消息,send 方法将发送消息而不检查其有效性。如果之后再对此消息进行任何更改,Completed 属性将更改回 false

要在请求消息中发送任意标头和数据,请将 Completed 设置为 true,以防止 send 方法修改消息。您仍然可以使用 complete 方法来验证消息,但 send 方法不管消息是否有效,都会发送消息。

如果请求消息包含数据(Body.Data 属性非空),则仅当 Body.Payload 包含原始数据时,Completed 才会设置为 true。在响应消息中,仅当您指定 HTTPOptions.SavePayload 属性时,才会设置有效负载。

属性:

GetAccess
public
SetAccess
public
Transient
true

数据类型: logical

消息起始行,指定为 matlab.net.http.StartLine 对象。

属性:

GetAccess
public
SetAccess
public

方法

全部展开

示例

全部折叠

创建 HTTP 消息,请求服务器向网站添加文本。本示例仅创建消息,不发送数据。

向消息主体中添加内容。

data = 'Data to send';
body = matlab.net.http.MessageBody(data);
body.show
Data to send

创建描述主体数据类型的 Content-Type 标头字段。

contentTypeField = matlab.net.http.field.ContentTypeField('text/plain');

创建 Accept 标头字段,指定响应消息可以接受的数据类型。

type1 = matlab.net.http.MediaType('text/*');
type2 = matlab.net.http.MediaType('application/json','q','.5');
acceptField = matlab.net.http.field.AcceptField([type1 type2]);

创建包含两个标头字段的请求标头。

header = [acceptField contentTypeField];

指定此消息是 PUT 请求。

method = matlab.net.http.RequestMethod.PUT;

创建请求消息并显示内容。

request = matlab.net.http.RequestMessage(method,header,body);
show(request)
PUT
Accept: text/*, application/json; q=.5
Content-Type: text/plain

Data to send

版本历史记录

在 R2016b 中推出