注:以下内容部分来自于mathworks
webread
从 RESTful Web 服务读取内容
1.RESTful
REST 表示表述性状态转移 (representational state transfer),Web 服务的一种常用体系结构样式。RESTful 接口提供标准的 HTTP 方法,例如 GET、PUT、POST 或 DELETE。
随着 REST 成为大多数 Web 和 Mobile 应用的默认选择,势必要对它的基本原理有所了解。
在它提出十多年后的今天,REST 已经成为最重要的 Web 应用技术之一。随着所有技术朝着 API 方向发展,它的重要性有可能持续快速地增长。每门主要编程语言现在已经包含构建 RESTful Web 服务的框架。同样地,Web 开发者和架构师对 REST 和 RESTful 服务有一个清晰的理解是很重要的。这篇教程解释了 REST 架构,然后研究使用它构建通用地基于API的任务的细节。
1.1 什么是 REST
REST 代表表述性状态转移(representational state transfer),它是一种网络化超媒体应用的架构风格。它主要是用于构建轻量级的、可维护的、可伸缩的 Web 服务。基于 REST 的服务被称为 RESTful 服务。REST 不依赖于任何协议,但是几乎每个 RESTful 服务使用 HTTP 作为底层协议。
RESTful 使用HTTP post(创建、更新)数据、读取数据、删除数据。使用HTTP实现CRUD(创建、读取、更新、删除)操作。
1.2 RESTful 服务特点:
每个系统都使用资源。这些资源可以是图片,视频文件,网页,商业信息,或者在基于计算机的系统中可以被代表的任何事物。服务的目的是提供一个窗口给客户端以便客户端能访问这些资源。服务架构师和开发人员想要这些服务变得易于实现、维护、扩展、伸缩。RESTful 架构允许这些,甚至更多。一般来说,RESTful 服务应该有下面的属性和特征,也就是我要详细描述的内容:
- 模型表示(Representations)
- 消息(Messages)
- URIs
- 一致接口(Uniform interface)
- (无状态)Stateless
- 资源之间的链接(Links between resources)
- 缓存(Caching)
2.语法
data = webread(url)
data = webread(url,QueryName1,QueryValue1,...,QueryNameN,QueryValueN)
data = webread(___,options)
[data,colormap,alpha] = webread(___)
[data,Fs] = webread(___)
3.说明
按照一个或多个名称-值对组参数指定的方式将查询参数追加到 data
= webread(url
,QueryName1,QueryValue1,...,QueryNameN,QueryValueN
)url
。要将查询放入消息主体,请使用 webwrite
。Web 服务定义查询参数。
添加由 data
= webread(___,options
)weboptions
对象 options
指定的其他 HTTP 请求选项。您可以将此语法与前面语法中的任何输入参数结合使用。
要将数据返回为特定输出类型,请指定 options
的 ContentType
属性。
要使用函数读取内容,请将 options
的 ContentReader
属性指定为该函数的句柄。webread
从 Web 服务下载数据并使用指定的函数读取这些数据:
-
如果指定了一个返回多个输出参数的函数句柄,则
webread
将返回所有输出参数。 -
如果指定了一个不返回任何输出参数的函数句柄(例如视频文件的 Image Processing Toolbox™ 函数
@implay
),则webread
将不返回任何输出参数。
[
从 data
,colormap
,alpha
] = webread(___)url
指定的 Web 服务中读取图像,并在 data
中返回该图像。您可以使用上述语法仅返回图像。使用此语法可返回与该图像关联的颜色图和 alpha 通道。
如果 HTTP 响应具有用于指定图像媒体类型的 Content-Type
头字段且 imread
支持该图像格式,则 webread
将返回一个图像。有关受支持的图像格式,请参阅支持的导入和导出文件格式。
[
从 data
,Fs
] = webread(___)url
指定的 Web 服务中读取音频数据,并在 data
中返回这些数据。您可以使用上述语法仅返回音频数据。使用此语法可返回音频数据的采样率(以赫兹为单位)。
如果 HTTP 响应具有用于指定音频媒体类型的 Content-Type
头字段且 audioread
支持该音频格式,则 webread
将返回音频数据。有关受支持的音频格式,请参阅支持的导入和导出文件格式。
4.示例
5.输入参数
6.输出参数
7.提示
-
有关 RESTful Web 服务函数不支持的功能,请参阅 HTTP 接口。
-
webread
支持 HTTP GET 和 POST 方法。许多 Web 服务同时提供 GET 和 POST 方法用于请求数据。要发送 HTTP POST 请求,请将options
的RequestMethod
属性指定为'post'
。但是,webread
将查询选项放入url
,而不是放入请求消息的主体。要将查询放入消息主体,请使用webwrite
。 -
对于 HTTP POST 请求,
webread
函数仅支持application/x-www-form-urlencoded
媒体类型。要将 POST 请求与任何其他 Internet 媒体类型的内容一起发送,请使用webwrite
。