包:matlab.net.http.io
超类:matlab.net.http.io.ContentConsumer
HTTP消息中文件的使用者
的FileConsumer
类提供了从web服务下载文件或将从web接收到的数据保存在文件中的方便方法。可以指定文件名,也可以让MATLAB®从服务器或URI中命名的文件发送的信息中确定名称。
的matlab.net.http.io.FileConsumer
类是一个处理
类。
消费者= FileConsumer(
构造一个文件名
,许可
,machineformat
,编码
)FileConsumer
它使用来自服务器的响应的有效负载创建或覆盖文件。参数的含义与打开外部文件
函数,所有都是可选的。
消费者= FileConsumer(
设置支撑材
)FileIdentifier
财产支撑材
并写入该文件。支撑材
必须是要写入时打开的文件的标识符。MATLAB在当前位置指示符处写入文件,因此如果使用“+”
权限,例如MATLAB追加到文件。传输完成后,MATLAB将位置指示符留在文件的末尾,不关闭文件。
文件名
- - - - - -文件或文件夹名称文件或文件夹名称,包括完整路径和可选扩展名,指定为字符向量或字符串标量。要确定MATLAB创建的文件的名称,请参阅文件名
财产。
如果文件名
指定现有文件夹中的一个文件,然后MATLAB:
使用以下命令打开文件fopen(文件名,许可,…)
.
如果许可
未指定,然后使用fopen(文件名,“w +”)
.
如果文件名
不包含扩展名,则MATLAB根据接收到的消息中的Content-Type和/或Content-Disposition报头字段或请求URI中的文件名扩展名(如果有)添加一个扩展名。
如果文件名
指定一个现有的、可写的文件夹,然后MATLAB在该文件夹中创建一个文件,该文件的名称来自响应中的Content-Disposition报头字段或URI,如果该名称不包含Content-Type,则可能添加一个基于Content-Type的扩展。
如果文件名
缺失或为空,则MATLAB在当前文件夹中创建一个文件。这相当于文件名
= '。'
.当前文件夹是此时的文件夹FileConsumer
创建时,而不是此消费者在发送
请求。
例子:“myTextFile.txt”
数据类型:字符
|字符串
许可
- - - - - -文件访问类型w +
(默认)|u +
|u
|T
|允许的值打开外部文件
函数文件访问类型,以字符串形式指定。如果许可
时,它必须允许写访问。默认值为“w +”
,它打开或创建一个文件进行读写,并丢弃现有的内容(如果有的话)。
许可
方法允许的任何值打开外部文件
函数。的下列附加值许可
支持:金宝app
|
一样 例如,如果 |
|
当附加到权限时,行为类似于文本模式 |
在所有情况下,为' w '
而且“w +”
权限(或如果许可
没有指定),MATLAB不会覆盖现有的文件,除非文件名完全等于文件名
.
例子:“一个”
“w + T”
数据类型:字符
|字符串
machineformat
- - - - - -读取或写入字节或位的顺序打开外部文件
类所允许的任意值指定的读取或写入字节或位的顺序打开外部文件
函数。
数据类型:字符
|字符串
编码
- - - - - -字符编码打开外部文件
属性所允许的任意值指定的字符编码打开外部文件
函数。
数据类型:字符
|字符串
FileIdentifier
- - - - - -文件标识符正在写入的文件标识符(FID),指定为double。如果消费者是用FID参数构造的,那么这个属性就是标识符。数据被写入与此标识符关联的当前文件位置指示符,因此子类在使用此标识符时应注意不要意外更改位置。在传输结束时,文件保持打开状态,位置保持在文件的末尾。
如果使用文件名
参数,或不带参数,则此属性是该文件的只读文件标识符。这允许子类在传输过程中读取文件,而不会干扰用于写入的位置指示器。在传输结束时,该标识符关闭。
GetAccess |
公共
|
SetAccess |
私人
|
文件名
- - - - - -文件路径名称string.empty
(默认)|字符串正在写入的文件的完整路径名称,指定为字符串。如果使用者是用FID参数构造的,那么这个属性就是文件的名称。否则,此值可能直到MATLAB在接收响应消息期间开始写入文件时才会设置,因为在接收到所有头信息之前不一定能确定文件名。使用此属性可确定写入的文件。文件名
也存储在Response.Body.Data
财产。
GetAccess |
公共
|
SetAccess |
私人
|
ContentLength
- - - - - -预期有效载荷长度uint64
|空有效载荷的预期长度,指定为uint64
.属性通常是价值
的属性matlab.net.http.field.ContentLengthField
在头
财产。
如果ContentLength
是空的,那么长度是不知道的。当负载结束时putData (uint8.empty)
被称为。
MATLAB在调用之前设置此属性初始化
,以方便子类,这些子类可能受益于知道数据的长度。
如果这ContentConsumer
是顶级消费者的委托,那么的值ContentLength
可能不同于ContentLength
顶级使用者的值。
例子:元素个数(someData)
在哪里someData
是类型uint8
GetAccess |
公共
|
SetAccess |
公共
|
ContentType
- - - - - -有效载荷的媒体类型matlab.net.http.MediaType
|空有效负载的媒体类型,指定为matlab.net.http.MediaType
对象。属性通常是价值
的属性matlab.net.http.field.ContentTypeField
在头
财产。如果ContentType
属性为空,则ContentTypeField
为空或不存在。
MATLAB在调用之前设置此属性初始化
类的子类可能需要检查MediaType
.子类可以设置此属性,如果它们从数据中确定它是不同的MediaType
.
在传输结束时,MATLAB将此值复制到Response.Body.ContentType
财产。
例子:的应用程序/八进制
GetAccess |
公共
|
SetAccess |
公共
|
头
- - - - - -当前正在处理有效载荷的报头matlab.net.http.HeaderField
当前正在处理的有效负载的头,指定为matlab.net.http.HeaderField
对象。
使用者使用此报头来确定如何处理发送给他们的有效负载。对于顶级使用者,此值与响应。头
.对于委托,值可能不同。类处理的多部分消息中MultipartConsumer
,它是这个委托正在处理的部分的头。委托仍然可以进行检查响应。头
用于原始消息的标题。
MATLAB在调用之前设置此属性初始化
,以方便子类。
GetAccess |
公共
|
SetAccess |
公共
|
请求
- - - - - -完成RequestMessage
这是发送的matlab.net.http.RequestMessage
完成的RequestMessage
发送的,指定为amatlab.net.http.RequestMessage
对象。这是期末考试RequestMessage
经过所有重定向,这是completedrequest
返回的值。发送
方法。
MATLAB在调用之前设置此属性初始化
,以方便子类。
GetAccess |
公共
|
SetAccess |
公共
|
响应
- - - - - -ResponseMessage
正在处理matlab.net.http.ResponseMessage
的ResponseMessage
正在处理,指定为matlab.net.http.ResponseMessage
对象。
MATLAB设置响应
属性。初始化
.取值为ResponseMessage
在接收报头之后,但在接收任何有效负载之前。在响应消息处理的开始(或多部分消息的一个部分的开始)时ResponseMesssage。身体
属性是一个MessageBody
对象为空数据
而且有效载荷
属性。要存储接收到的数据,使用者可以修改响应
而且MessageBody。数据
属性。通常情况下,消费者处理并存储数据集Response.Body.Data
到它们处理的有效负载,尽管这不是必需的。在转换完成时,MATLAB返回这个响应
给打电话的人发送
.消费者不应修改其他响应
属性,例如头
或状态栏
的调用者返回这些更改发送
.
的Response.Body.Payload
属性在传输期间为空,使用者不应试图修改它。如果HTTPOptions。SavePayload
属性设置,然后MATLAB设置有效载荷
到接收到的有效负载的消息或部分的传输结束后(调用到putData (uint8.empty)
)或发生异常时。
如果在消息处理期间消费者中发生异常,则MATLAB将抛出异常textbox
对象。的历史
属性包含以下内容响应
价值。
如果使用者是处理多部分消息的一部分的委托,则响应。头
包含整个消息的头,而有效载荷
而且数据
的属性响应。身体
调用ContentConsumer
对于每个部分。在每个部分的结论,一个新的ResponseMessage
添加到数组的末尾ResponseMessage
初始响应中的对象的身体。数据
包含头
从这个对象和身体
从这个性质。下一个委托看到一个fresh响应
空的MessageBody
,而不是前一个委托的MessageBody
.
GetAccess |
公共
|
SetAccess |
公共
|
依赖 |
真正的
|
URI
- - - - - -正在处理的请求的目的地matlab.net.URI
正在处理的请求的目的地,指定为matlab.net.URI
对象。此值是由确定的原始目标URI发送
.它不是代理的URI,也不是重定向后的最终URI。
MATLAB在调用之前设置此属性初始化
,以方便子类。
GetAccess |
公共
|
SetAccess |
公共
|
AppendFcn
- - - - - -由putData
附加附加数据函数,指定为函数句柄,由putData
方法附加附加数据。的putData
方法调用AppendFcn
函数中附加接收到的数据数据
参数指向响应消息中的现有数据。函数必须具有以下签名:
newdata AppendFcn(消费者)
在哪里newdata
数据是否被追加到数组consumer.Response.Body.Data
.更新是该方法的责任消费者。CurrentLength
以反映新的长度数据
.如果newdata
为空,这表示流的结束,那么函数应该更新Response.Body.Data
到它的最终值。
如果此属性为空,则默认行为使用内部函数处理数据
类型的任意值的数组金宝apphorzcat
函数。它能有效地增加newdata
通过预分配空间,维护CurrentLength
为所存储数据的实际长度。在消息的末尾,它截断Response.Body.Data
来CurrentLength
.
子类可以更改此属性,如果horzcat
不适合附加进程。例如,当一个StringConsumer
生成标量字符串时,它将使用+
功能而不是horzcat
.
不调用的子类ContentConsumer.putData
附加数据,或者满足的数据horzcat
行为,可以忽略此属性。
例子:@customAppend
在哪里@customAppend
是由消费者定义的
GetAccess |
受保护的
|
SetAccess |
受保护的
|
CurrentDelegate
- - - - - -ContentConsumer
这个消费者正在委托给它matlab.net.http.io.ContentConsumer
|[]
的ContentConsumer
此使用者委托给的对象,指定为matlab.net.http.io.ContentConsumer
对象。的delegateTo
方法的调用方(委托方)设置CurrentDelegate
财产。如果没有当前委托,则值为[]
.
MATLAB集CurrentDelegate
来[]
在调用之前初始化
.
GetAccess |
受保护的
|
SetAccess |
受保护的
|
CurrentLength
- - - - - -当前数据的长度Response.Body.Data
uint64.empty
(默认)|uint64
对象中当前数据的长度Response.Body.Data
属性,指定为uint64
.
此属性用于Response.Body.Data
已预先分配到比当前存储的实际数据量更大的大小,以指示所存储数据的长度。如果这个属性为空,那么它意味着所有的Response.Body.Data
存储的数据ContentConsumer
子类以某种方式处理数据,而不是将数据存储在Response.Body.Data
.
属性使用并设置此属性putData
方法时,此基类中的AppendFcn
属性为空。它是为了调用子类的利益putData
并希望检查已经存储的数据,和/或的任何实现AppendFcn
保持结果Response.Body.Data
.
使用的子类putData
也可以修改此属性以重置数据在缓冲区中的存储位置。例如,当默认时AppendFcn
函数,它是处理所有Response.Body.Data
每次呼叫putData
原来的数据可能不再有用途,所以可以重新设置CurrentLength
属性改为1,以便下一个putData
调用用新数据覆盖缓冲区。不需要清除缓冲区中超过新数据结束的元素。
不调用的子类putData
可以使用此属性跟踪自己的数据,也可以不设置(空)。MATLAB没有对这里可以设置的值施加任何约束,除了确定默认值在哪里之外,也没有将其用于任何目的AppendFcn
应该存储下一个数据缓冲区,以及在消息末尾截断数据的位置。在最后调用之前,将此属性设置为空putData (uint8.empty)
防止数据被截断。
在每次调用之前,MATLAB将此属性设置为空初始化
.
GetAccess |
受保护的
|
SetAccess |
受保护的
|
MyDelegator
- - - - - -ContentConsumer
委托给这个消费者matlab.net.http.io.ContentConsumer
|空的ContentConsumer
委托给该使用者的,指定为matlab.net.http.io.ContentConsumer
对象。如果此使用者是由另一个使用者调用的委托,例如GenericConsumer
或MultipartConsumer
,那么这是打电话的消费者。在调用中指定的顶级使用者中为空发送
.
委托可以使用此属性访问其委托方的属性,例如,确定委托给它们的是哪个消费者。
GetAccess |
受保护的
|
SetAccess |
受保护的
|
初始化 |
为新的HTTP有效负载准备使用者 |
开始 |
开始向FileConsumer传输文件 |
putData |
为FileConsumer保存下一个数据缓冲区到文件 |
delegateTo |
委托给另一个消费者 |
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。