主要内容

matlab.net.http.io.GenericProvider类

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

HTTP有效负载的通用ContentProvider

描述

使用一个一般提供者对象以通过函数生成的自定义数据而不是创建一个内容提供者子类。

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

创建

描述

Provider = genericProvider(getdatafcn.构造一个内容提供者使用功能getdatafcn.获取数据的缓冲区。这个构造函数设置了GetDataFcn财产getdatafcn.

Provider = genericProvider(getdatafcn.contentLength向值为的消息头部添加Content-Length字段contentLength.使用此语法作为直接向标题添加内容长度字段的替代方案。在这种情况下,返回的数据的长度getdatafcn.之前,停止= true设置,必须完全等于此长度。

Provider = genericProvider(getdatafcn.contentLength缓冲区大小构造一个内容提供者附加选项。如果contentLength不是空的,那么构造函数设置数据的长度。如果缓冲区大小不为空,然后构造函数设置数据缓冲区的最大大小。

输入参数

全部展开

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

缓冲区大小,指定为双倍。

特性

全部展开

公共属性

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

属性:

GetAccess
公共
setaccess.
公共
依赖
真正的

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

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

从提供商的完整的方法,如果这不是一条多部分消息,则MATLAB读取该属性并将其内容合并到请求. 这一领域标题的名字尚未出现在请求。标题都加到末尾了吗请求。标题.如果是一个领域标题有一个名称这和1 in是一样的请求。标题,两者都是非空的, 然后:

  • 如果是其中请求。标题是一个GenericField然后忽略一个人标题

  • 如果是其中请求。标题不是一个GenericField,然后把它替换成里面的那个标题

如果其中一个或两个都有空价值,然后将该字段从中删除请求。标题它不会作为正常消息完成的一部分添加。

如果这是a的委托MultiPartProvider.,然后是这个的全部内容标题用作零件的标头。多部分委托不能这样假设请求。标题包含与自己有关的任何字段标题.提供程序可以通过检查是否为多部分委托来确定它是否为多部分委托MyDelegator.是一个MultiPartProvider.,尽管不太可能需要这种测试。

MATLAB仅读取此属性仅拨打电话提供商完整的方法。一旦MATLAB调用,对该数组的更改将被忽略开始

类作者应该意识到他们的子类可能会为此添加字段标题(在他们完整的方法)在呼叫之前完整的超类。最好保留这些字段,而不要添加名称相同的字段。但是,向字段添加参数是允许的。例如,超类可以向还没有字符集参数的现有Content-Type字段添加字符集参数。

属性:

GetAccess
公共
setaccess.
公共

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

  • 如果MATLAB知道内容长度(如果消息包含内容长度字段,则是这种情况,或者如果此提供程序expectedContentLength方法返回一个数字),然后MATLAB决定是否将其分块发送。

  • 如果MATLAB不知道内容长度(没有content - length字段在头部和expectedContentLength返回空),然后matlab始终发送邮件块。

如果ForceChunked真正的然后,Matlab发送消息块,无论它是否知道内容长度,否则都是已知的长度小于块大小。如果这个属性是真正的,则消息必须不包含Content-Length字段,因为HTTP不允许分块消息具有Content-Length字段。属性中仍然可以返回非零值expectedContentLength方法如果希望MATLAB验证您是否返回预期的数据长度。

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

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

属性:

GetAccess
公共
setaccess.
公共

请求消息要发送,指定为amatlab.net.http.requestmessage.对象。

此属性仅由子类作者使用。这RequestMessage.sendRequestMessage.complete.方法将此属性设置为要求询问身体在调用此提供程序中的任何其他方法之前,并在添加任何其他标题字段之前,已放置此提供程序,或在添加任何其他标题字段之前。提供商可以检查此消息以查看原始请求中包含的内容。

委托将此属性与委托卡相同。内容提供者应该知道,如果它们是委托,则它们不一定提供请求消息的整个主体,因此它们不应该假设此请求中的标题字段与其提供的数据相关。通常,委托将忽略与数据相关的此请求中的标题字段,例如Content-type。

如果提供商希望将任何标题字段添加到此消息,或修改现有的字段,则它应该在其上进行完整的方法,将这些字段添加到标题财产。来电者的来电者完整的要求询问或者委派提供商)确定与这些字段有关。RequestMessage.sendRequestMessage.complete.始终将这些字段复制到标题要求询问.委派提供商可以将字段复制到自己的字段标题属性或将它们插入到消息中(如MultiPartProvider.).有关更多信息,请参见标题财产。

此属性是只读的。

属性:

GetAccess 公共
setaccess. matlab.net.http.requestmessage.

受保护财产

内容提供者该提供商正在委派,指定为amatlab.net.http.io.ContentProvider对象。属性在调用提供程序(委托程序)中设置此属性德比托方法以指示当前的委托提供程序。如果当前没有委托,则该值为空。

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

属性:

GetAccess
保护
setaccess.
保护

内容提供者委托给该提供者的,指定为matlab.net.http.io.ContentProvider对象。

如果一个内容提供者委派将全部或部分消息数据发送给另一个提供程序的责任,然后此属性将委派提供程序标识给委派。例如,一个MultiPartProvider.将部分消息委托给其他提供程序,因此它将句柄插入每个委托。否则,MyDelegator.是空的。这德比托方法在委托中设置此属性。

属性:

GetAccess
保护
setaccess.
保护

方法

全部展开

更多关于

全部展开

在R2018A介绍