主要内容

matlab.net.http.io.MultipartProvider类

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

ContentProvider发送多级/混合HTTP消息

描述

此提供商有助于创建多级HTTP消息。

默认的Content-Type是“多尾/混合”,并且消息的有效载荷包含任意数量的部分,每个部分包含其自己的标题描述该部分。有关MultiPart消息的更多信息,请参阅RFC 2046,第5.1节

仅当您知道服务器接受多部分/混合消息时,才直接使用此提供程序。通常,接受多部分消息的服务器需要“multipart / form-data”,由子类实现MultipartFormProvider.您可以使用子类实现其他多部分类型。

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

子类作者

可以将多级消息的每个部分指定为允许的任何格式的数据RequestMessage。身体,或作为一个内容提供者它创建数据。这内容提供者用于为部件提供数据的对象称为委托,而这一点MultiPartProvider.是顶级提供程序。一般来说,任何内容提供者适合作为代表。这MultiPartProvider.在消息发送时依次调用每个委托,调用其方法,例如完全的或者开始,因此,委托一般不必意识到它为部分提供内容,而不是整个消息。

该提供商始终传输要求询问作为块,所以它不包括消息中的内容长度标题字段或任何部分的标题。尽管MultiPartProvider.打电话给每个代表预期的ContentLength方法,它只使用返回值(如果非空)来强制长度,而不是创建Content-Length字段。如果委托确实希望在部分中出现Content-Length字段,则必须显式地在其标题财产。没有任何一个内容提供者MATLAB提供的子类®做这个处理。

创建

描述

提供者= MultipartProvider (part1,...,partn构建A.MultiPartProvider.以HTTP请求以指定的顺序发送指定的部分。默认情况下,此提供程序将消息的内容类型设置为“多尾/混合”,但是子类可以通过设置子类型财产。构造函数设置元素部分每个属性单元数组part1,...,partn论点。

属性

全部展开

公共属性

消息正文的部分,指定为其中一个或多个这些值的单元格数组:

内容提供者目的

MultiPartProvider.委托将该部件创建为指定提供程序(称为委托),调用其完整的方法以获取有关该部件及其部分的标题信息getData方法获取数据。代表人标题属性用于部件的标题。任何子类内容提供者可以在这里指定。通常,委托不指定内容长度,也不实现预期的ContentLength方法,因为部分的结尾是由边界字符串而不是头字段指定的。如果该方法实现为返回一个非空值,则该值仅用于强制内容的长度,而不是创建content - length字段。

要求询问目的

MultiPartProvider.发送标题身体要求询问作为部分。如果是身体的有效载荷属性的设置,则将其用于原始有效负载。否则身体的数据属性基于其类型或内容类型字段转换标题,如上所述MessageBody。数据.如果您有数据要发送并希望利用MATLAB在发送时确认的数据的默认处理,则此选项非常有用要求询问.它允许您在请求中指定要使用的请求中的自定义头字段标题并控制数据如何转换,而不需要写内容提供者子类。这RequestMessage。RequestLine财产被忽略。

邮件正文目的

邮件正文被加工相同,就像它一样要求询问没有内容类型字段。如果基于其类型的数据默认处理数据是足够的,则此选项非常有用,并且您无需为该部件指定任何自定义标题字段。MATLAB基于数据的类型在零件中插入内容类型字段。看MessageBody。数据对于转换规则。

的数组内容提供者要求询问和/或邮件正文对象

这将阵列的每个元素视为零件。不是单元格阵列。

把握getData方法

此方法必须具有的签名ContentProvider.getData.在这种情况下,部分的内容类型设置为“申请/八元门流”,因此此选项可用于发送二进制数据。使用此选项时,您无法为该部件指定任何自定义标题字段。

其他类型

如果类型与任何这些类型不匹配并且不是函数句柄,那么它被视为它存在于数据A的财产邮件正文.查看描述邮件正文类型。

属性:

GetAccess
公共
setaccess.
公共
依赖
真的

消息或部分的标题字段,指定为一个或多个向量matlab.net.http.headerfield.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知道内容长度(如果消息包含内容长度字段,则是这种情况,或者如果此提供程序预期的ContentLength方法返回了一个数字),然后Matlab决定是否将其发送到块。

  • 如果MATLAB不知道内容长度(标题中没有内容长度字段和预期的ContentLength返回空),然后matlab始终发送邮件块。

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

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

Matlab致电后读取这个值完全的方法,在调用之前开始.它没有设置此字段。

属性:

GetAccess
公共
setaccess.
公共

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

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

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

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

此属性是只读的。

属性:

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

受保护的属性

提供程序子类型,指定为字符串。默认值“混合”添加设置为的内容类型头“多尾/混合”,再加上适当的参数。类的子类可以在构造函数或完全的方法。此值显示在内容类型之后“multipart /”

属性:

GetAccess
保护
setaccess.
保护

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

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

属性:

GetAccess
保护
setaccess.
保护

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

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

属性:

GetAccess
保护
setaccess.
保护

方法

全部展开

更多关于

全部展开

在R2018A介绍