WebOptions.

为RESTful web服务指定参数

描述

例子

选择= weboptions返回一个默认WebOptions.对象指定对web服务的请求的参数。一个WebOptions.对象可以是一个可选的输入参数韦布雷德Websave., 和webwrite功能。控件不支持的选项万博1manbetxWebOptions.函数,见HTTP接口

例子

选择= weboptions (名称,值指定一个或多个属性WebOptions.对象。

例子

默认WebOptions.对象

创建一个默认的WebOptions.对象并显示其属性的默认值。

选择= weboptions
UserAgent: 'MATLAB 9.7.0.1112323 (R2019b)' Timeout: 5 Username: " Password: " KeyName: " KeyValue: " ContentType: 'auto' ContentReader: [] MediaType: 'auto' RequestMethod: 'auto' ArrayFormat: 'csv' HeaderFields: [] CertificateFilename: 'default'

weboptions对象中的用户名和密码

设置您的web服务用户名和密码WebOptions.对象。您可以使用对象作为输入参数韦布雷德Websave., 要么webwrite当您的Web服务需要身份验证时。

选择= weboptions ('用户名'“jdoe”“密码”“我的密码”);

显示时,密码被遮挡WebOptions.对象。但是,对象将密码存储为纯文本。您可以从中检索密码WebOptions.Password.财产。

选项。密码
ans ='mypassword'

输入参数

全部折叠

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。名称参数名和价值是相应的价值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:weboptions(“超时”,60)创建一个WebOptions.对象,该对象将超时连接持续时间设置为60秒。

使用的编码韦布雷德将Web内容转换为字符,指定为字符串标量或字符向量。常见的编码包括“us - ascii”“utf - 8”“latin1”中的一个“Shift_JIS”, 和“iso - 8859 - 1”.默认编码取决于内容类型。如果你得到乱码的文字,那么韦布雷德编码可能与文档使用的编码不同。尝试设置字符编码UTF-8.

用户代理标识,指定为指示客户端用户代理的字符串标量或字符矢量。

超时连接持续时间,以秒为单位,指定为正值标量。在发送请求的最后一个数据包之后,该值是等待从服务器接收初始响应(标题)的秒数。超时等于ResponseTimeout财产的matlab.net.http.httpoptions.类。最大值为2147.483647秒。使用设置最大值。

有些操作系统有系统强制的最大超时。即使值为,该超时也会生效超时大于最大值。例如,在Windows上®10,这个超时是21秒。

用户标识符,指定为基本和/或摘要HTTP身份验证(不加密)的字符串标量或字符向量。关于基本HTTP认证方案的信息,请参见https://tools.ietf.org/html/rfc7617.有关HTTP摘要访问认证的信息,请参见https://tools.ietf.org/html/rfc7616

用户身份验证密码,指定为基本和/或摘要HTTP身份验证的字符串标量或字符向量(无加密)。如果你展示一个WebOptions.对象密码设置后,该值将显示为包含' * '的字符向量。但是,对象存储的是密码为纯文本。

键的名称,指定为字符串标量或字符向量。KeyName是要添加到HTTP请求标头的其他名称。例如,KeyName可以是web服务API密钥名。

例子:weboptions(‘KeyName’,‘时间’,‘KeyValue’,7)创建一个WebOptions.对象,该对象包含键名,持续时间,由Web服务定义。

键的值,指定为要添加到HTTP请求头的字符串标量、字符向量或数字或逻辑值。KeyValue键的值是否由KeyName

例子:weboptions(‘KeyName’,‘时间’,‘KeyValue’,7)创建一个WebOptions.对象,该对象包含键值,7,与密钥名配对,持续时间

报头字段的名称和值,指定为要添加到HTTP请求报头的m-by-2字符串数组或字符向量单元数组。Headerfields {i,1}字段名是and吗Headerfields {i,2}是它的价值。

这些报头字段添加到或替换自动添加的字段韦布雷德webwrite, 要么Websave..通常会添加这些字段,但如果其中一个字段的名称与将自动添加的字段中的一个匹配不区分大小写,并且该字段不支持多个值(例如Content-Type),那么将使用您指定的值。万博1manbetx某些字段的值是成功发送请求所必需的,例如Connection和Content-Length,不能被覆盖。

例子:WebOptions('headerfields',{content-length''78';'content-type''application / Json'})创建一个WebOptions.包含两个标题字段的对象:内容长度与价值78内容类型与价值application / json

内容类型,指定为字符串标量或字符向量。使用ContentType请求服务器以特定格式优先返回数据。韦布雷德使用此值将响应转换为MATLAB®类型。如果可能,服务器将返回此内容类型,但服务器没有义务这样做。

ContentType说明符

输出类型

“汽车”(默认)

根据服务器指定的内容类型自动确定输出类型。

'文本'

内容类型的字符向量:

文本/平原
text / html
text / xml
应用程序/ xml
应用程序/ javascript.
应用程序/ x-javascript
应用程序/ x-www-form-urlencoded

如果一个web服务返回一个带有.m扩展时,函数将其内容作为字符向量返回。

'图像'

数字或逻辑矩阵图像/格式内容。如果第一个输出参数是一个索引图像,则第二个输出参数是colormap,第三个输出参数是alpha通道。

有关支持万博1manbetx的图像格式,请参见万博1manbetx支持的文件格式的导入和导出

“音频”

数字矩阵音频/格式以数字标量采样率作为第二个输出参数的内容。

有关支持万博1manbetx的音频格式,请参见万博1manbetx支持的文件格式的导入和导出

“二元”

uint8二进制内容的列向量(即,内容不被视为类型字符).

“表”

电子表格和CSV的标量表对象(文字/ CSV.) 内容。

json的

字符、数字、逻辑、结构或单元格数组,用于application / json内容。

“xmldom”

java.®的文档对象模型(DOM)节点text / xml要么应用程序/ xml内容。如果未指定,该函数将返回XML内容作为字符向量。

“生”

字符列向量为'文本'“xmldom”, 和json的内容。该函数将任何其他内容类型返回为auint8列向量。

例子:weboptions(“ContentType”、“文本”)创建一个WebOptions.对象,指示韦布雷德将文本、JSON或XML内容作为字符向量返回。

内容阅读器,指定为函数句柄。您可以创建WebOptions.对象ContentReader,并将对象作为输入参数传递给韦布雷德.然后韦布雷德从Web服务下载数据,并使用函数句柄指定的函数读取数据。韦布雷德忽略了ContentTypeContentReader都是确定的。

例子:WebOptions('contentReader',@ ReadTable)创建一个WebOptions.对象,指示韦布雷德使用readtable以表的形式读取内容。

媒体类型,指定为字符串标量、字符向量或matlab.net.http.MediaType对象。媒体类型指定数据类型webwrite发送到Web服务。它指定MATLAB指定服务器的内容类型,它控制了webwrite数据参数,如果指定,则转换。

有关媒体类型的完整列表,请参见互联网媒体类型

默认值为“汽车”这表明MATLAB基于输入选择类型webwrite.如果使用PostName / PostValue参数对,然后MATLAB使用“应用程序/ x-www-form-urlencoded”送一对。如果使用数据作为标量字符串或字符向量的参数,然后matlab假定它是一个编码的字符串,并使用它发送它“应用程序/ x-www-form-urlencoded”.如果数据是什么,然后MATLAB将其转换为JSON使用jsonencode.并使用内容类型“application / json”

如果你指定媒体类型包含json的要么javascript的, 和数据是一个字符向量,那么它就是如此发送。使用其他类型(包括标量字符串)使用jsonencode.

如果您指定“应用程序/ x-www-form-urlencoded”,然后PostName / PostValue对编码成对。数据,如果存在,则必须是按原样发送的字符串或字符向量。

如果你指定媒体类型那个包含'XML', 和数据是一个文档对象模型对象(Javaorg.apache.xerces.dom.DocumentImpl),然后转换为XML。数据,如果存在,则必须是按原样发送的字符串或字符向量。

如果你指定其他的媒体类型, 和数据是字符串还是字符向量WebOptions.发送值的值。

PostName / PostValue双只接受媒体类型“汽车”“应用程序/ x-www-form-urlencoded”而且始终发送字符向量 - 无论如何媒体类型

您可以指定分号分隔名称=值内的参数媒体类型例如,字符串application / json的;odata =冗长的'.某些服务器需要此格式作为请求中内容类型标题字段的一部分。

例子:WEBOPTIONS('MEDIATYPE','APPLICATION / JSON')创建一个WebOptions.对象,指示webwrite将字符向量数据编码为JSON,然后发布到web服务。

方法,指定为字符串标量、字符向量或matlab.net.http.requestmethod.枚举为以下值之一:

  • “汽车”

    • 韦布雷德Websave.使用http get方法。

    • webwrite使用HTTP POST方法。

  • '得到'韦布雷德Websave.功能。

  • “职位”韦布雷德webwrite, 和Websave.功能。

  • '放'韦布雷德webwrite, 和Websave.功能。

  • '删除'韦布雷德webwrite, 和Websave.功能。

  • “补丁”韦布雷德webwrite, 和Websave.功能。

韦布雷德Websave.函数将查询放入URL中,而不管RequestMethodwebwrite将查询放入数据中,而不管RequestMethod

例子:weboptions(“RequestMethod”、“文章”)创建一个WebOptions.对象,指示韦布雷德Websave., 要么webwrite使用Web服务的HTTP POST方法。

格式以对表示多个值的查询或提交值进行格式编码,指定为'csv'json的“重复”, 要么“php”.查询或发布值包含多个值(如果是)

  • 数字,逻辑或约会时间向量

  • 一个具有多个行的字符数组

  • 单元格向量,其中每个元素是数字、逻辑或约会时间只有一行的标量或字符向量

不支持其他数据类型或维。万博1manbetx

此表显示了名为的查询参数的每个格式的编码转换“参数”的查询值(1 2 3).Web服务指定要使用的转换。

ArrayFormat说明符

表格编码转换

'csv'(默认)

参数= 1、2、3

json的

参数=(1、2、3)

“重复”

参数= 1参数= 2参数= 3

“php”

参数[]= 1参数[]= 2参数[]= 3

将标量作为一个元素数组进行编码json的要么“php”说明符,将标量放置在单元素单元格数组中。

例子:WebOptions('ArrayFormat','重复')创建一个WebOptions.对象,指示韦布雷德Websave., 要么webwrite将任何查询或post值的形式编码为多个值作为重复查询参数。

文件名,指定为字符串标量或字符向量,表示包含根证书的文件的名称和位置。文件必须是PEM (privacy-enhanced mail)格式。位置必须在当前文件夹中,在MATLAB路径中的一个文件夹中,或一个文件的完整或相对路径中。此文件中包含的证书用于验证HTTPS连接的服务器证书。由于HTTPS连接的安全性依赖于此文件的完整性,请适当保护它。MATLAB不管理证书或证书文件,但有第三方工具可用于管理PEM文件。

默认情况下aWebOptions.对象时,MATLAB使用系统提供的证书存储来验证服务器证书。这也是if的行为CertificateFilename被设置为“默认”

如果CertificateFilename是空的(),然后关闭服务器证书的验证。MATLAB仅验证服务器证书的域名是否与服务器的域名匹配。

如果使用时遇到服务器证书验证失败“默认”,然后使用系统浏览器检查连接。

如果您遇到连接问题,请考虑以下问题:

  • 对于已过期或撤销的服务器证书,请联系网站所有者或服务器管理员。

  • 对于缺失的根CA证书,您可以选择以下选项之一:

    • 将根CA证书添加到表示的文件中CertificateFilename

    • 通过设置禁用证书验证CertificateFilename空().

  • 如果服务器证书的域名和服务器的域名不匹配,可以通过创建matlab.net.http.RequestMessage对象,并设置matlab.net.http.httpoptions.verifyServername.财产

请注意

这些选项是临时解决方法,MathWorks强烈建议您使用有效/正确的服务器证书解决任何服务器证书验证失败的根本原因。

属性:

GetAccess

公共

SetAccess

公共

在R2014B中介绍