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

从网站读取 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 从 MATLAB 调用 Web 服务

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

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

扩展功能

版本历史记录

在 R2014b 中推出