主要内容

matlab.net.http.io.GenericProvider类

包:matlab.net.http.io
超类:matlab.net.http.io.ContentProvider

用于HTTP有效负载的通用ContentProvider

描述

使用一个GenericProvider对象来流由函数生成的自定义数据,而不是创建内容提供者子类。

matlab.net.http.io.GenericProvider类是一个处理类。

创建

描述

provider = GenericProvider(getDataFcn构造一个内容提供者使用函数getDataFcn获取数据缓冲区。该构造函数设置GetDataFcn财产getDataFcn

provider = GenericProvider(getDataFcn,contentLength将Content-Length字段添加到值为的消息头contentLength.使用此语法作为直接向报头添加Content-Length字段的替代方法。在本例中,为返回的数据的长度getDataFcn之前,停止= true是设定的,必须恰好等于这个长度。

provider = GenericProvider(getDataFcn,contentLength,bufferSize构造一个内容提供者附加选项。如果contentLength不为空,则构造函数设置数据的长度。如果bufferSize不为空,则构造函数设置数据缓冲区的最大大小。

输入参数

全部展开

有效载荷的预期长度,指定为uint64

缓冲区大小,指定为double。

属性

全部展开

公共属性

函数获取数据,指定为函数句柄。

属性:

GetAccess
公共
SetAccess
公共
依赖
真正的

消息或部分的报头字段,指定为一个或多个向量matlab.net.http.HeaderField对象。

此属性仅供子类作者使用。MATLAB®在调用提供者的属性之前设置此属性完整的方法。对于非多部分消息,MATLAB将此属性初始化为的内容请求。头,减去任意matlab.net.http.field.GenericFields或者空值字段。的内容提供者使用此属性可添加描述要发送的数据的报头字段,或向消息中已存在的报头字段添加参数。的委托中MultipartProvider, MATLAB将此属性初始化为委托提供程序打算为该部件插入的报头字段。委托可以修改或更改这些字段。

从提供商返回时完整的方法,如果这不是一个多部分消息,则MATLAB读取该属性并将其内容合并到的头文件中请求.这里的字段的名字还没有出现在请求。头都加到末尾请求。头.如果一个场在这里有一个的名字等于1 in请求。头,两者都有nonempty,那么:

  • 如果在请求。头是一个GenericField,然后忽略其中的

  • 如果在请求。头不是GenericField,然后将其替换为in

如果其中一个或两个都是空的价值,则该字段将从请求。头并且它不是作为正常消息完成的一部分添加的。

如果这是一个委托MultipartProvider,然后是整个内容用作部件的标头。多部分委托不能这样假设请求。头包含属于它们自己的任何字段.提供程序可以通过检查是否确定它是否是多部分委托MyDelegator是一个MultipartProvider,尽管这项测试不太可能需要。

MATLAB只在调用提供者的返回值时读取此属性完整的方法。一旦MATLAB调用,对该数组的更改将被忽略开始

类的作者应该意识到他们的子类可能已经向这个添加了字段(在他们完整的方法)。完整的在他们的超班。最好保留这些字段,不要添加具有相同名称的字段。但是,向字段中添加参数是允许的。例如,超类可以向现有的Content-Type字段添加字符集参数。

属性:

GetAccess
公共
SetAccess
公共

指示是否强制分块传输编码,指定为布尔值。此属性仅与子类作者有关,并且仅适用于非多部分委托的提供者。子类集ForceChunked控制是否使用分块传输编码发送内容。如果(默认),MATLAB决定是否发送分块的内容,基于它是否知道消息准备发送时的内容长度:

  • 如果MATLAB知道内容长度(如果消息包含content - length字段,或者该提供者的expectedContentLength方法返回一个数字),然后MATLAB决定是否将其分块发送。

  • 如果MATLAB不知道内容长度(没有content - length字段在头部和expectedContentLength返回空),则MATLAB始终将消息分块发送。

如果ForceChunked真正的,则无论MATLAB是否知道内容长度,除非已知长度小于数据块大小,MATLAB都会将消息分块发送。如果此属性为真正的,则消息必须不包含Content-Length字段,因为HTTP不允许分块消息具有Content-Length字段。方法中返回非零值expectedContentLength方法,如果您想让MATLAB验证您正在返回预期的数据长度。

当MATLAB选择将消息分块发送时,每个分块的大小等于返回的数据的长度getData

函数后,MATLAB读取此值完整的方法,在调用之前开始.它不设置这个字段。

属性:

GetAccess
公共
SetAccess
公共

要发送的请求消息,指定为matlab.net.http.RequestMessage对象。

此属性仅供子类作者使用。的RequestMessage.send而且RequestMessage.complete方法将此属性设置为RequestMessage在谁的身体在调用此提供程序中的任何其他方法之前,在添加任何其他报头字段或验证消息之前,已经放置了此提供程序。提供者可以检查此消息,以查看原始请求中包含的内容。

委托看到的此属性值与委托看到的相同。内容提供者应该意识到,如果它们是委托,它们不一定提供请求消息的整个主体,所以它们不应该假设这个请求中的报头字段与它们所提供的数据相关。通常,委托应该忽略此请求中与数据相关的报头字段,例如Content-Type。

如果提供者希望向此消息添加任何报头字段,或修改现有的报头字段,则应该在其完整的方法,将这些字段添加到财产。打电话的人完整的RequestMessage或委托提供者)决定如何处理这些字段。RequestMessage.send而且RequestMessage.complete始终将这些字段复制到RequestMessage.委托提供程序可以将字段复制到自己的字段属性,或将它们插入到消息中(如MultipartProvider).有关更多信息,请参见财产。

此属性是只读的。

属性:

GetAccess 公共
SetAccess matlab.net.http.RequestMessage

受保护的属性

内容提供者提供程序委托给的对象,指定为matlab.net.http.io.ContentProvider对象。类在调用提供程序(委托)中设置此属性delegateTo方法来指示当前委托的提供程序。如果没有当前委托,则该值为空。

完整的方法将此属性设置为空。

属性:

GetAccess
受保护的
SetAccess
受保护的

内容提供者委托给此提供程序的matlab.net.http.io.ContentProvider对象。

如果一个内容提供者委托负责将全部或部分消息数据发送给另一个提供者,则此属性将将提供者委托给委托。例如,MultipartProvider将部分消息委托给其他提供者,因此它在每个委托中为自己插入句柄。否则,MyDelegator是空的。的delegateTo方法在委托中设置此属性。

属性:

GetAccess
受保护的
SetAccess
受保护的

方法

全部展开

更多关于

全部展开

在R2018a中引入