matlab.net.http.io.StringProvider类
包:matlab.net.http.io
超类:matlab.net.http.io.ContentProvider
内容提供者发送MATLAB字符串
描述
使用一个StringProvider
对象发送一个MATLAB®在一个字符串或字符向量RequestMessage
。默认情况下,如果一个RequestMessage.Body.Data
属性包含一个字符串或字符向量,然后根据编码转换为二进制(字符集)指定的或隐含的内容类型字段信息,所以你通常不会需要使用这个对象发送纯文本在MATLAB的情况下可以确定使用什么编码。
使用这个对象Request.Body
属性发送一个字符串编码使用一个字符集可能不同于一个MATLAB将使用的content - type头。你指定的字符集内容提供者
构造函数或通过设置字符集
财产。如果消息不包含内容类型,这个提供程序添加一个指定“文本/普通”
和指定的字符集。
的matlab.net.http.io.StringProvider
类是一个处理
类。
创建
描述
提供者= StringProvider
构造一个StringProvider
发送的数据数据
与指定的值属性编码字符集
财产。设置这些属性包含这个提供者发送消息之前。
提供者= StringProvider (
构造一个数据
,字符集
)StringProvider
发送指定的数据
使用指定的编码字符集
。构造函数设置数据
房地产的价值数据
和字符集
房地产的价值字符集
。的字符集
参数是可选的。
属性
公共属性
数据
- - - - - -数据发送
字符串|特征向量
数据发送,指定为字符串或字符向量。这是数据的价值提供给构造函数。你也可以直接设置这个属性,调用构造函数后,或在你的子类。
子类作者可以将此属性设置为新数据在任何时候。下一个电话getData
将这些数据,的值getData
长度
论点。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
依赖 |
真正的
|
字符集
- - - - - -用于编码字符集
”
(默认)|特征向量
用于编码字符集,指定为一个特征向量。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
依赖 |
真正的
|
头
- - - - - -头字段的消息或部分
matlab.net.http.HeaderField.empty
(默认)|matlab.net.http.HeaderField
消息头字段或部分,指定为一个向量的一个或多个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
- - - - - -表明是否强迫分块传输编码
假
(默认)|真正的
表明是否强迫分块传输编码,指定为布尔。这个属性是作者感兴趣的子类,只适用于供应商,不是多部分代表。子类集ForceChunked
控制内容是否应该发送使用分块传输编码。如果假
(默认),MATLAB决定是否发送内容分块,根据内容长度是否知道消息是准备发送时:
如果MATLAB知道内容长度(如果消息包含内容长度字段,或者如果这个提供者的
expectedContentLength
MATLAB方法返回一个数字),然后决定是否寄分块。如果MATLAB不知道内容长度(没有在标题和内容长度字段
expectedContentLength
返回空的),然后用MATLAB总是分块发送的消息。
如果ForceChunked
是真正的
MATLAB发送消息,然后分块不管它知道内容的长度,除非已知的长度小于块大小。如果此属性真正的
,那么消息必须不包含内容长度字段,因为HTTP不允许分块消息内容长度字段。然而,你仍然可以返回一个非零值expectedContentLength
方法如果你希望MATLAB验证返回预期的数据长度。
当MATLAB选择发送消息分块,每个块的大小等于返回的数据的长度getData
。
MATLAB调用后读取该值完整的
方法,在调用之前开始
。它没有设置这个字段。
属性:
GetAccess |
公共
|
SetAccess |
公共
|
请求
- - - - - -请求消息发送
matlab.net.http.RequestMessage
请求消息发送,指定为一个matlab.net.http.RequestMessage
对象。
作者使用这个属性只有通过子类。的RequestMessage.send
和RequestMessage.complete
设置该属性的方法RequestMessage
在谁的身体
这个供应商已经放置,在这个提供程序调用其他方法之前,在添加任何额外的头字段或验证消息。提供者可以检查这个消息,看看原始请求中包含的是什么。
代表们看到这个属性相同的值作为全权代表。内容提供者
应该意识到,如果他们的代表,他们不一定是提供整个身体的请求消息,所以他们不应该假设在这个请求头字段相关的数据提供。通常,代表应该忽略这个请求头字段相关的数据,如内容类型。
如果提供者希望添加任何消息头字段,或者修改现有的,它应该这样做的完整的
通过将这些字段添加到方法头
财产。调用者的完整的
(RequestMessage
或授权提供者)决定如何处理这些字段。RequestMessage.send
和RequestMessage.complete
总是将这些字段复制到头
的RequestMessage
。授权提供者可以复制自己的字段头
房地产或将它们插入到消息(如的情况MultipartProvider
)。有关更多信息,请参见头财产。
这个属性是只读的。
属性:
GetAccess |
公共 |
SetAccess |
matlab.net.http.RequestMessage |
受保护的属性
CurrentDelegate
- - - - - -内容提供者
这个供应商是授权
matlab.net.http.io.ContentProvider
|空
内容提供者
这个供应商是委托,作为指定matlab.net.http.io.ContentProvider
对象。这个属性被设置在调用提供者(在委托)delegateTo
方法来表示当前授权提供者。如果没有当前代表团,值是空的。
的完整的
方法将此属性设置为空。
属性:
GetAccess |
受保护的
|
SetAccess |
受保护的
|
MyDelegator
- - - - - -内容提供者
委托给这个供应商
matlab.net.http.io.ContentProvider.empty
(默认)|matlab.net.http.io.ContentProvider
内容提供者
委托给这个供应商,指定为一个matlab.net.http.io.ContentProvider
对象。
如果一个内容提供者
代表负责发送消息的全部或部分数据到另一个提供者,然后这个属性标识授权提供者委托。例如,一个MultipartProvider
代表的部分消息到其他供应商,所以在每个委托它插入一个句柄。否则,MyDelegator
是空的。的delegateTo
方法设置这个属性的委托。
属性:
GetAccess |
受保护的
|
SetAccess |
受保护的
|
方法
公共方法
getData |
下一个缓冲区的数据从StringProvider发送HTTP请求消息 |
专业运营商和功能
这些方法专业标准MATLAB操作符和函数和对象在这类继承的方法。
字符串 |
供应商信息字符串 |
显示 |
显示供应商信息 |
受保护的方法
完整的 |
StringProvider完整的HTTP头 |
preferredBufferSize |
首选缓冲区大小ContentProvider |
expectedContentLength |
内容长度ContentProvider |
开始 |
从StringProvider开始数据传输 |
可重新开始的 |
表明ImageProvider是否可重新开始的 |
可重用的 |
表明ImageProvider是否可重用 |
delegateTo |
委托给另一个供应商 |
例子
使用StringProvider
下面的代码准备发送的消息字符串“myText”
使用内容类型“文本/普通”
服务器使用Shift_JIS编码:
周大福= ContentTypeField (MediaType (“文本/普通”,“字符集”,“Shift_JIS”);r = RequestMessage (“把”、周大福StringProvider (“myText”));
在这个例子里,标题没有内容类型字段,所以StringProvider
插入一个基于构造函数参数。
r = RequestMessage (“把”[],StringProvider (“myText”,“Shift_JIS”));显示(r.complete (“www.someurl.com”))
把/ HTTP / 1.1主持人:www.someurl.com内容类型:文本/平原;charset = Shift_JIS user - agent: MATLAB / 9.2.0.512567 (R2017b)连接:关闭时间:星期五,2017年6月20 14:26:42格林尼治时间
在这个例子中,到指定的字符集StringProvider
构造函数用于转换的数据是不同的字符集的content - type字段。StringProvider
不改变现有内容类型字段已经指定了一个字符集,因此服务器假定数据是us - ascii,不是shift - jis。
周大福= ContentTypeField (MediaType (“文本/普通”,“字符集”,“us - ascii”));r = RequestMessage (“把”、周大福StringProvider (“myText”,“Shift_JIS”));
在这个例子中,MATLAB将字符集参数添加到内容类型字段没有指定字符集,因为默认“application / json”
从Shift_JIS是utf - 8,这是不同的。
周大福= ContentTypeField (MediaType (“application / json”));r = RequestMessage (“把”、周大福StringProvider (“myText”,“Shift_JIS”));显示(r.complete (“www.someurl.com”))
把/ HTTP / 1.1主持人:www.someurl.com - type: application / json;charset = Shift_JIS user - agent: MATLAB / 9.2.0.512567 (R2017b)连接:关闭时间:星期五,2017年6月20 14:26:42格林尼治时间
当没有的content - type报头字段并没有指定字符集StringProvider
,MATLAB使用启发式发现“最小”可以表示数据的编码,其中包含的默认编码平台。在本例中,当运行在Windows上,Unicode®字符串中的字符是在windows - 1252范围内,但在us - ascii范围,所以使用windows - 1252:
r = RequestMessage (“把”[],StringProvider (“€abc”));显示(r.complete (“www.someurl.com”))
把/ HTTP / 1.1主持人:www.someurl.com内容类型:文本/平原;charset = windows - 1252用户代理:MATLAB / 9.2.0.512567 (R2017b)连接:关闭时间:星期五,2017年6月20 14:26:42格林尼治时间
在这种情况下,content - type字段指定“application / json”
没有字符集,没有指定StringProvider
。因为默认的字符集“application / json”
是utf - 8,StringProvider
使用显式地转换,不指定字符集在content - type字段中。
周大福= ContentTypeField (MediaType (“application / json”));r = RequestMessage (“把”、周大福StringProvider (“myText”));%使用utf - 8
更多关于
类层次结构
版本历史
另请参阅
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。