Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

websave

将 RESTful Web 服务中的内容保存到文件

说明

示例

outfilename = websave(filename,url) 保存来自 url 指定的 Web 服务的内容,并将其写入 filenamewebsave 函数将完整的 filename 路径以 outfilename 形式返回。

Web 服务提供了一个RESTful,后者可以返回具有 Internet 媒体类型格式(例如 JSON、XML、图像或文本)的数据。

示例

outfilename = websave(filename,url,QueryName1,QueryValue1,...,QueryNameN,QueryValueN) 按照一个或多个名称-值对组实参指定的方式将查询形参追加到 url。Web 服务定义查询参数。

示例

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

websave 支持 HTTP GET 和 POST 方法。要发送 HTTP POST 请求,请将 optionsRequestMethod 属性指定为 'post'。许多 Web 服务同时提供 GET 和 POST 方法用于请求数据。

示例

全部折叠

保存来自 Hubble Heritage 网站的木星图像。

url = 'https://hubblesite.org/uploads/image_file/image_attachment/14836/compass_large_web.jpg';
filename = 'jupiter_aurora.jpg';
outfilename = websave(filename,url)
outfilename =

C:\Libraries\Documents\jupiter_aurora.jpg

websave 按照 Hubble Web 服务的要求,将该图像另存为 JPEG 文件,即使在您为 filename 指定了不同扩展名时也是如此。(木星图像来源:NASA、ESA 和 Hubble Heritage Team (STScI/AURA)。有关使用条款,请参阅 Space Telescope Science Institute)。

在 File Exchange 中搜索过去七天内上传的包含单词 Simulink® 的文件,并显示搜索结果。

url = 'https://www.mathworks.com/matlabcentral/fileexchange/';
filename = 'simulink_search.html';
outfilename = websave(filename,url,'term','simulink','duration',7)
outfilename =

C:\Libraries\Documents\simulink_search.html

在 Web 浏览器中显示 HTML 文件。

web(outfilename)

将来自美国国家气象局地球物理数据中心(National Geophysical Data Center,简称 NGDC)的太阳黑子数据保存到 ASCII 文件。使用 weboptions 对象可将超时值设置为 Inf 以使连接不会超时。

api = 'http://www.ngdc.noaa.gov/stp/space-weather/';
url = [api 'solar-data/solar-indices/sunspot-numbers/' ...
       'american/lists/list_aavso-arssn_yearly.txt'];
filename = 'sunspots_annual.txt';
options = weboptions('Timeout',Inf);
outfilename = websave(filename,url,options)
outfilename =

C:\Libraries\Documents\sunspots_annual.txt

聚合数据和 Web 服务由 NGDC 提供。美国变星观测者协会(American Association of Variable Star Observers,简称 AAVSO)提供的太阳黑子数据,最初发表在 AAVSO Sunspot Counts:1943-2013, AAVSO Solar Section (R. Howe, Chair)。(有关 NGDC 使用条款,请参阅 NGDC 隐私声明、免责声明和版权;有关 AAVSO 使用条款,请参阅 AAVSO Solar Section。)

保存从 NASA Earth Observation (NEO) Web Mapping Service 读取的 2004 年 12 月的一幅“Blue Marble:Next Generation”图像。

使用 datetime 对象指定所请求的图像的日期。指定 DFormat 属性,使其格式与 Web 服务请求的格式相匹配。

url = 'http://neowms.sci.gsfc.nasa.gov/wms/wms';
D = datetime(2004,12,01,'Format','yyyy-MM-dd');
filename = 'BlueMarble.jpg';
outfilename = websave(filename,url,'Time',D, ...
     'Service','WMS','Layers','BlueMarbleNG-TB','CRS','CRS:84', ...
     'Format','image/jpeg','Height',256,'Width',512, ...
     'BBOX','-180.0,-90.0,180.0,90.0','Version','1.3.0','Request','GetMap')
outfilename =

C:\Libraries\Documents\BlueMarble.jpg

websave 转换 datetime 对象,以便它们可以作为 Web 服务查询参数的值。示例中的所有名称-值对组提供了由 NEO Web Mapping Service 指定的查询参数。

Blue Marble:Next Generation + Topography and Bathymetry 图像由 NASA 的 Earth Observatory 提供。NEO Web Mapping Service (WMS) 提供对图像和服务的访问权限。(请参阅 NASA Earth Observations 了解致谢名单和使用条款。有关 WMS 查询参数,请搜索 NASA Earth Observations 网站 WMS 1.3.0 Capabilities。)

从网站读取 JSON 数据并保存在文件 test.txt 中。

uri = matlab.net.URI('http://httpbin.org/get');
websave('test.txt',uri,weboptions('ContentType','json'));

将文件中的文本读入一个 JSON 数据的结构体。

js = jsondecode(fileread('test.txt'))
js = 

  struct with fields:

       args: [1×1 struct]
    headers: [1×1 struct]
     origin: '144.444.4.4'
        url: 'http://httpbin.org/get'

输入参数

全部折叠

要保存内容的文件的名称,指定为字符向量或字符串标量。websave 按原样保存内容。websave 将忽略 options.ContentTypeoptions.ContentReader(即使设置了这些属性)。

示例: websave('matlabcentral.html','https://www.mathworks.com/matlabcentral') 读取网页并将其 HTML 保存到文件 matlabcentral.html 中。

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

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

当您将 QueryValue 指定为 datetime 对象时,必须将其 Format 属性指定为与 Web 服务要求的格式一致。如果 Format 属性包含时区或偏移量,而 datetime 对象未设置时区,则 websave 会将 'Local' 指定为时区。

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

示例: websave('webread_search.html','https://www.mathworks.com/matlabcentral/fileexchange/','term','simulink') 检索上传到 File Exchange 且包含单词 simulink 的文件列表,并将搜索结果保存到 HTML 文件中。

其他 HTTP 请求选项,指定为 weboptions 对象。有关作为 weboptions 属性的所有请求选项,请参阅 weboptions

详细信息

全部折叠

RESTful

REST 表示表述性状态转移 (representational state transfer),Web 服务的一种常用体系结构样式。RESTful 接口提供标准的 HTTP 方法,例如 GET、PUT、POST 或 DELETE。

提示

  • 有关 RESTful Web 服务函数不支持的功能,请参阅 HTTP 接口

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

在 R2014b 中推出