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 方法用于请求数据。

示例

全部折叠

此示例说明如何将 Web 服务器上的一个图像保存为文件。

定位图像

httpsUrl = "https://requestserver.mathworks.com";
imageUrl = strcat(httpsUrl, "/assets/computerVision.jpg");

将图像保存到文件

imageFile = "computerVision.jpg";
imageFileFullPath = websave(imageFile, imageUrl);

此示例说明如何从 Web 服务器文件保存数据。

httpsUrl = "https://requestserver.mathworks.com";
dataUrl = strcat(httpsUrl, "/assets/weatherStation.csv");
weatherFile = "weatherData.csv";
weatherFileFullPath = websave(weatherFile, dataUrl);

此示例说明如何将数据保存为文本文件。

httpUrl  = 'http://requestserver.mathworks.com';
employeeUrl = strcat(httpUrl, '/employee');
employeeFile = 'employeeData.txt';
employeeFileFullPath = websave(employeeFile, employeeUrl, 'occupation', 'Software Engineer');
employeeData = jsondecode(fileread(employeeFileFullPath))
employeeData=2×1 struct array with fields:
    id
    firstName
    lastName
    occupation
    age
    city

保存从 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

  • 要指定代理服务器设置,请参阅Proxy Server Authentication

版本历史记录

在 R2014b 中推出