main content

从 restful web 服务读取内容 -凯发k8网页登录

从 restful web 服务读取内容

说明

示例

data = webread(url)url 指定的 web 服务读取内容并在 data 中返回内容。

web 服务提供了一个restful,后者可以返回具有 internet 媒体类型格式(例如 json、xml、图像或文本)的数据。

示例

data = webread(url,queryname1,queryvalue1,...,querynamen,queryvaluen) 按照一个或多个名称-值对组参量指定的方式将查询参数追加到 url。要将查询放入消息主体,请使用 webwrite。web 服务定义查询参数。

示例

data = webread(___,options) 添加由 weboptions 对象 options 指定的其他 http 请求选项。您可以将此语法与前面语法中的任何输入参数结合使用。

要将数据返回为特定输出类型,请指定 optionscontenttype 属性。

要使用函数读取内容,请将 optionscontentreader 属性指定为该函数的句柄。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 将返回音频数据。有关受支持的音频格式,请参阅。

示例

此示例说明如何从网站上读取一个图像并显示它。

读取图像数据

httpsurl = 'https://requestserver.mathworks.com';
imageurl = strcat(httpsurl, '/assets/computervision.jpg');
rgb = webread(imageurl);
whos rgb
  name        size                bytes  class    attributes
  rgb       360x640x3            691200  uint8              

调整大小和显示图像

rgb = imresize(rgb, 0.6);
imshow(rgb)

此示例说明如何从 csv 数据文件中读取温度。

从 csv 文件中读取数据

httpsurl = "https://requestserver.mathworks.com";
dataurl = strcat(httpsurl, "/assets/weatherstation.csv");
data = webread(dataurl);
time = [data.time];
temp = [data.tempf];

显示温度图

plot(time, temp)
xlabel("time")
ylabel("temperature (farenheit)")
title("temperature over time");
axis padded

此示例说明如何使用查询参数选择一条记录。

查看雇员数据库结构

显示数据库 employee 的字段。

httpsurl = "https://requestserver.mathworks.com";
employeeurl = strcat(httpsurl, "/employee");
fieldnames(webread(employeeurl))
ans = 6×1 cell
    {'id'        }
    {'firstname' }
    {'lastname'  }
    {'occupation'}
    {'age'       }
    {'city'      }

firstnamelastname 选择雇员

jsmith = webread(employeeurl, "firstname", "john", "lastname", "smith");
disp(jsmith);
            id: 1
     firstname: 'john'
      lastname: 'smith'
    occupation: 'software engineer'
           age: '32'
          city: 'boston'

此示例说明如何以特定类型形式返回数据。

读取数据

httpurl  = "http://requestserver.mathworks.com";
employeeurl = strcat(httpurl, "/employee");

以字符数组形式返回记录

创建一个 weboptions 对象并将其 contenttype 设置为 'text'webread 函数将 json 对象转换为字符数组。

options = weboptions("contenttype", "text");
sbrown = webread(employeeurl, "firstname", "sarah", options);
disp(sbrown)
[{"id":2,"firstname":"sarah","lastname":"brown","occupation":"software engineer","age":"28","city":"new york"}]

输入参数

web 服务的 url,指定为字符向量或字符串标量。包括传输协议。仅支持 httphttps。web 服务实现 restful 接口。有关详细信息,请参阅 restful

示例: webread('https://www.mathworks.com/matlabcentral') 读取网页并以字符数组形式返回其 html。

web 服务查询参数,指定为一个或多个名称-值对组参数。queryname 参数必须将查询参数的名称指定为字符向量或字符串标量。queryvalue 参数必须是字符向量、字符串标量或者用于指定查询参数值的数值、逻辑值或 datetime 值。数值、逻辑值和 datetime 值可以置于数组中。web 服务定义作为请求的一部分而被接受的名称-值对组。

当您将 queryvalue 指定为 datetime 对象时,必须指定其 format 属性,以便它与 web 服务要求的格式一致。如果 format 属性包含时区或偏移量,而 datetime 对象未设置时区,则 webread 会将 'local' 指定为时区。

queryvalue 在一个数组中包含多个值时,可能需要指定 对象的 arrayformat 属性,以按照 web 服务指定的方式对该数组进行表单编码。

示例: webread('https://www.mathworks.com/matlabcentral/fileexchange/','term','webread') 检索上传至 file exchange 且包含单词 webread 的文件列表。

其他 http 请求选项,指定为 weboptions 对象。

可指定 weboptions 对象的 contenttype 属性,并将该对象作为输入参数传递到 webread。然后,webread 会将 data 作为该类型的输出返回。该表列出了您可以在 weboptions 对象中指定的有效内容类型。

contenttype 设定符

输出类型

'auto'(默认值)

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

'text'

内容类型的字符向量:

text/plain
text/html
text/xml
application/xml
application/javascript
application/x-javascript
application/x-www-form-urlencoded

如果 web 服务返回一个具有 .m 扩展名的 matlab® 文件,则该函数将以字符向量形式返回该文件的内容。

'image'

image/format 内容的数值或逻辑矩阵。如果第一个输出参数是索引图像,第二个输出参数是颜色图,第三个输出参数是 alpha 通道。

有关受支持的图像格式,请参阅。

'audio'

audio/format 内容的数值矩阵(数值标量采样率作为第二个输出参数)。

有关受支持的音频格式,请参阅。

'binary'

二进制内容的 uint8 列向量,此处的二进制内容是指那些不能作为 char 类型进行处理的内容。

'table'

电子表格和 csv (text/csv) 内容的标量表格对象。

'json'

application/json 内容的 char、数值、逻辑值、结构体或元胞数组。

'xmldom'

text/xmlapplication/xml 内容的 java® 文档对象模型 (dom) 节点。如果未指定,则该函数将以字符向量形式返回 xml 内容。

'raw'

'text''xmldom''json' 内容的 char 列向量。该函数将以 uint8 列向量的形式返回所有其他内容类型。

有关作为 weboptions 属性的所有请求选项,请参阅 。

输出参数

从 web 服务读取的内容,以标量、数组、结构体或表的形式返回。

与索引图像关联的颜色图,以数值数组的形式返回。

与索引图像关联的 alpha 通道,以数值数组的形式返回。

音频数据的采样率(以赫兹为单位),以正数值标量的形式返回。

详细信息

restful

rest 表示表述性状态转移 (representational state transfer),web 服务的一种常用架构样式。restful 接口提供标准的 http 方法,例如 get、put、post 或 delete。

提示

  • 有关 restful web 服务函数不支持的功能,请参阅 。

  • webread 支持 http get 和 post 方法。许多 web 服务同时提供 get 和 post 方法用于请求数据。要发送 http post 请求,请将 optionsrequestmethod 属性指定为 'post'。但是,webread 将查询选项放入 url,而不是放入请求消息的主体。要将查询放入消息主体,请使用 webwrite

  • 对于 http post 请求,webread 函数仅支持 application/x-www-form-urlencoded 媒体类型。要将 post 请求与任何其他 internet 媒体类型的内容一起发送,请使用 webwrite

  • 此函数不会检查文档内容来确定如何处理它。例如,html 和 xml 文档通常包含一个 标记,指定文档的字符编码。如果该编码与默认的 webread 编码不同,请在 weboptions 中指定正确的 characterencoding 选项。

  • 要指定代理服务器设置,请参阅。

版本历史记录

在 r2014b 中推出

另请参阅

| | | | | | | |

主题

    外部网站

      网站地图