主要内容

matlab.net.http.io.MultipartFormProvider类

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

ContentProvider多部分/格式发送消息

描述

使用这个提供者向服务器发送一个多部分组成。多部分表单是一个包含一系列的消息部分,每个部分都有一个“控制名称”和它的数据。的数据可以是任何类型允许RequestMessage.Body.Data或另一个内容提供者

一些服务器需要多个部分下相同的名称在一个嵌套多部分/混合的部分。将嵌套的零件,包装的部分MultipartProvider。例如,发送消息所描述的最后17章的表单数据的HTML 4.01规范:

fps = FileProvider([“中”,“file2.gif”]);%得到一系列的提供商议员= MultipartProvider (fps);formProvider = MultipartFormProvider (“submit-name”、“拉里”、“文件”,mp);要求= RequestMessage(“把”,[],formProvider);req.send (uri);

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

创建

描述

提供者= MultipartFormProvider (的名字,)创建“多部分/格式”内容由一个或多个名称部分对参数指定。部分是格式包含一个的名字和它的内容。的部分参数可以是任何类型的支持万博1manbetxMultipartProvider,包括其他内容提供者对象。

如果一个部分是一个数组,它相当于重复吗的名字,为每个元素的数组。例如,声明:

MultipartFormProvider(“名字”,FileProvider ([file1 file2 "]))

等价于:

MultipartFormProvider(“名字”,FileProvider (file1),“名字”,FileProvider (file2));

属性

全部展开

公共属性

部件名称,指定为一个字符串。

属性:

GetAccess
公共
SetAccess
公共

部分消息体,单元阵列的一个或多个指定这些值:

内容提供者对象

MultipartProvider代表的部分指定的供应商(称为委托),调用它的完整方法获得头信息和它的一部分getData方法来获取数据。委托的属性用于标题的部分。的任何子类内容提供者可以在这里指定。通常情况下,委托没有指定内容长度也没有实现expectedContentLength方法,结束后由边界字符串指定的一部分,而不是一个头字段。如果方法返回一个非空的价值实现,那么值只用于执行内容的长度,而不是创建内容长度字段。

RequestMessage对象

MultipartProvider发送身体RequestMessage的部分。如果身体的有效载荷属性设置,然后用于原始载荷。否则身体的数据根据其类型或属性转换中的内容类型字段,所述MessageBody.Data。这个选项是有用的,如果你有数据发送和想利用MATLAB的默认处理数据®通常当发送RequestMessage。它允许您指定自定义头字段在请求的一部分使用和控制数据是如何转换的,而无需编写一个内容提供者子类。的RequestMessage.RequestLine属性将被忽略。

MessageBody对象

MessageBody处理同样的如果是在吗RequestMessage没有内容类型字段。这个选项是有用的,如果违约处理的数据根据其类型是足够的,你不需要指定任何自定义头字段的部分。部分基于MATLAB插入一个内容类型字段的数据类型。看到MessageBody.Data转换规则。

的数组内容提供者,RequestMessage和/或MessageBody对象

这对数组的每个元素作为一个部分。不是一个单元阵列。

句柄getData方法

这个方法必须签名ContentProvider.getData。在这种情况下,一部分的内容类型设置为“应用程序/八进制”,所以这个选项是用于发送二进制数据。使用此选项时,您不能指定的任何自定义标题字段的部分。

其他类型

如果这些类型的类型不匹配任何和不是一个函数处理,然后它被看作是在场的数据财产的MessageBody。请查看描述MessageBody类型。

属性:

GetAccess
公共
SetAccess
公共
依赖
真正的

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

这个属性只是作者使用的子类。MATLAB调用提供者的前设置这个属性完整的方法。对于non-multipart消息,MATLAB初始化该属性的内容Request.Header-任何matlab.net.http.field.GenericFields或empty-valued字段。的内容提供者使用这个属性来添加标题字段描述发送的数据,或将参数添加到已经在消息头字段。在一个委托MultipartProvider,MATLAB初始化这个属性的头字段授权提供者打算插入部分。代表们可以修改或改变这些字段。

从提供者的回来完整的方法,如果这不是一个多部分消息,MATLAB读取这个属性和合并其内容的标题请求。在这个领域的名字不已经出现Request.Header被添加到年底吗Request.Header。如果一个字段有一个的名字这是一样的Request.Header,都有非空的,那么:

  • 如果一个在Request.Header是一个GenericField,然后忽略的

  • 如果一个在Request.Header不是一个GenericField,然后把它换成一个

如果一方或双方有一个空的价值,然后删除Request.Header它不像正常的消息的一部分添加完成。

如果这是一个委托MultipartProvider,那么它的全部内容作为标题的部分。多部分代表不能假设Request.Header包含有关自己的任何字段。提供者可以确定这是一个多部分委托是否通过检查MyDelegator是一个MultipartProvider这个测试,尽管不太可能是必要的。

MATLAB读取这个属性只在从调用提供者的回报完整的方法。修改这个数组一旦MATLAB调用将被忽略开始

类作者应该意识到他们的子类可能添加字段(在他们完整的方法)之前调用完整的超类。最好保护等领域,而不是添加字段具有相同的名称。然而,将一个参数添加到字段是允许的。例如,一个超类可以将一个字符集参数添加到现有的内容类型字段不已经有一个了。

属性:

GetAccess
公共
SetAccess
公共

表明是否强迫分块传输编码,指定为布尔。这个属性是作者感兴趣的子类,只适用于供应商,不是多部分代表。子类集ForceChunked控制内容是否应该发送使用分块传输编码。如果(默认),MATLAB决定是否发送内容分块,根据内容长度是否知道消息是准备发送时:

  • 如果MATLAB知道内容长度(如果消息包含内容长度字段,或者如果这个提供者的expectedContentLengthMATLAB方法返回一个数字),然后决定是否寄分块。

  • 如果MATLAB不知道内容长度(没有在标题和内容长度字段expectedContentLength返回空的),然后用MATLAB总是分块发送的消息。

如果ForceChunked真正的MATLAB发送消息,然后分块不管它知道内容的长度,除非已知的长度小于块大小。如果此属性真正的,那么消息必须不包含内容长度字段,因为HTTP不允许分块消息内容长度字段。然而,你仍然可以返回一个非零值expectedContentLength方法如果你希望MATLAB验证返回预期的数据长度。

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

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

属性:

GetAccess
公共
SetAccess
公共

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

作者使用这个属性只有通过子类。的RequestMessage.sendRequestMessage.complete设置该属性的方法RequestMessage在谁的身体这个供应商已经放置,在这个提供程序调用其他方法之前,在添加任何额外的头字段或验证消息。提供者可以检查这个消息,看看原始请求中包含的是什么。

代表们看到这个属性相同的值作为全权代表。内容提供者应该意识到,如果他们的代表,他们不一定是提供整个身体的请求消息,所以他们不应该假设在这个请求头字段相关的数据提供。通常,代表应该忽略这个请求头字段相关的数据,如内容类型。

如果提供者希望添加任何消息头字段,或者修改现有的,它应该这样做的完整的通过将这些字段添加到方法财产。调用者的完整的(RequestMessage或授权提供者)决定如何处理这些字段。RequestMessage.sendRequestMessage.complete总是将这些字段复制到RequestMessage。授权提供者可以复制自己的字段房地产或将它们插入到消息(如的情况MultipartProvider)。有关更多信息,请参见财产。

这个属性是只读的。

属性:

GetAccess 公共
SetAccess matlab.net.http.RequestMessage

受保护的属性

提供者亚型,指定为一个字符串。默认值“混合”增加了一个内容类型标题设置为“多部分/混合”到消息,加上适当的参数。子类构造函数或者可以改变这个值完整的方法。这个值出现后的内容类型“多部分/”

属性:

GetAccess
受保护的
SetAccess
受保护的

内容提供者这个供应商是委托,作为指定matlab.net.http.io.ContentProvider对象。这个属性被设置在调用提供者(在委托)delegateTo方法来表示当前授权提供者。如果没有当前代表团,值是空的。

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

属性:

GetAccess
受保护的
SetAccess
受保护的

内容提供者委托给这个供应商,指定为一个matlab.net.http.io.ContentProvider对象。

如果一个内容提供者代表负责发送消息的全部或部分数据到另一个提供者,然后这个属性标识授权提供者委托。例如,一个MultipartProvider代表的部分消息到其他供应商,所以在每个委托它插入一个句柄。否则,MyDelegator是空的。的delegateTo方法设置这个属性的委托。

属性:

GetAccess
受保护的
SetAccess
受保护的

方法

全部展开

更多关于

全部展开

版本历史

介绍了R2018a