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 服务器文件中的天气数据保存到当前文件夹中的一个 CSV 文件。

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

将数据库中的雇员数据保存到当前文件夹中的一个文本文件。使用 filereadjsondecode 函数从文本文件中提取 JSON 格式的雇员数据。

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

详细信息

全部折叠

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 中推出

全部展开