36.4.2 WWW访问

Octave可以通过互联网与网站进行通信。web函数将启动一个外部网页浏览器以交互方式查看网站。 其余函数—urlreadurlwritewebreadwebwrite—是Octave内部函数,可以经由URL(统一资源定位符)在Octave与网站之间导入或导出数据。

 
status = web ()
status = web (url)
status = web (url, option)
status = web (url, option_1, …, option_N)
[status, h, url] = web (…)

在默认系统网页浏览器中打开url

如果没有给出参数,将打开地址 https://www.octave.org

可以传递额外选项以保持与MATLAB的兼容性,但这些选项会被忽略。

  • -browser’ 在默认系统浏览器中打开url
  • -new’ 对系统浏览器无影响。
  • -noaddressbox’ 对系统浏览器无影响。
  • -notoolbar’ 对系统浏览器无影响。

返回值status的取值如下:

  • 0’ 成功找到并打开系统浏览器。
  • 1’ 找不到系统浏览器。
  • 2’ 已找到系统浏览器,但发生错误。

返回值handleurl目前尚未实现, 仅为兼容性而提供。

参见: weboptions, webread, webwrite, urlread, urlwrite

 
s = urlread (url)
s = urlread (url, Name, Value, …)
[s, success] = urlread (url, …)
[s, success, message] = urlread (url, …)

通过其url下载远程文件,并将其内容以字符串s的形式返回。

例如:

s = urlread ("http://ftp.octave.org/pub/README");

变量success在下载成功时为1,否则为0,此时message包含错误消息。

如果未指定输出参数且发生错误,则会通过Octave的错误处理机制发出错误信号。

此函数使用libcurl。curl库支持HTTP、FTP和FILE等协议。用户名和密码可以在URL中指定。 例如:

s = urlread ("http://user:[email protected]/file.txt");

可以使用属性/值对指定额外的选项:

Get

用于GET请求参数的名称/值对元胞数组。

Post

用于POST请求参数的名称/值对元胞数组。

Timeout

超时时间,单位为秒。

UserAgent

请求的用户代理字符串。

Username

用于身份验证的用户名。

Password

用于身份验证的密码。

Charset

字符编码(已存储但当前未使用)。

使用属性/值对的示例:

s = urlread ("http://www.example.com/data",
             "Get", {"term", "octave"}, "Timeout", 10);

为向后兼容,也支持旧的调用形式:

s = urlread ("http://www.google.com/search",
             "get", {"query", "octave"});

参见: urlwrite, weboptions.

 
urlwrite (url, localfile)
urlwrite (url, localfile, Name, Value, …)
f = urlwrite (url, localfile, …)
[f, success] = urlwrite (url, localfile, …)
[f, success, message] = urlwrite (url, localfile, …)

下载由url指定的远程文件,并将其保存为localfile

例如:

urlwrite ("http://ftp.octave.org/pub/README",
          "README.txt");

已下载文件的完整路径在f中返回。

变量success在下载成功时为1,否则为0,此时message包含错误消息。

如果未指定输出参数且发生错误,则会通过Octave的错误处理机制发出错误信号。

此函数使用libcurl。curl库支持HTTP、FTP和FILE等协议。用户名和密码可以在URL中指定, 例如:

urlwrite ("http://username:[email protected]/file.txt",
          "file.txt");

可以使用属性/值对指定额外的选项:

Get

用于GET请求参数的名称/值对元胞数组。

Post

用于POST请求参数的名称/值对元胞数组。

Timeout

超时时间,单位为秒。

UserAgent

请求的用户代理字符串。

Username

用于身份验证的用户名。

Password

用于身份验证的密码。

使用属性/值对的示例:

urlwrite ("http://www.example.com/data.txt", "data.txt",
          "Timeout", 10, "UserAgent", "Octave");

为向后兼容,也支持旧的调用形式:

urlwrite ("http://www.google.com/search", "search.html",
          "get", {"query", "octave"});

参见: urlread, weboptions.

 
response = webread (url)
response = webread (url, name1, value1, …)
response = webread (…, options)

从RESTful web服务读取内容。

url指定的web服务读取内容,并将内容返回到response中。

所有给定的键值对(value1, …)将作为查询参数追加到url中。 要将查询放在消息正文中,请使用webwrite。web服务定义了可接受的查询参数。

options是一个weboptions对象,可用于添加其他HTTP请求选项。 此参数可以与任何一种调用形式一起使用。 有关支持的所有HTTP选项的完整列表,请参阅 help weboptions

参见: weboptions, webwrite.

 
response = webwrite (url, name1, value1, …)
response = webwrite (url, data)
response = webwrite (…, options)

向RESTful web服务写入数据。

url指定的web服务写入内容,并将响应返回到response中。

所有给定的键值对(name1, value1, …)将作为查询参数对添加到请求方法(getpostput等)的正文中。

options是一个weboptions对象,可用于添加其他HTTP请求选项。 此参数可以与任何一种调用形式一起使用。 有关支持的所有HTTP选项的完整列表,请参阅 help weboptions

参见: weboptions, webread.

 
options = weboptions ()
options = weboptions (name1, value1, …)

指定RESTful web服务的参数。

当无输入调用时,返回一个默认的weboptions对象, 用于指定向web服务发出请求的参数。weboptions 对象是webreadwebwrite函数的可选输入参数。

可以按任意顺序指定多个名称和值对参数,作为 name1, value1, name2, value2等。

选项名称必须完全匹配下表中指定的其中一个。

以下选项可用:

  • CharacterEncoding’ — 指定数据的字符编码:

    auto’(默认)、‘UTF-8’、‘US-ASCII’。 ‘auto’ 根据数据的content-type选择编码。

  • UserAgent’ — 指定连接的用户代理。

    默认值为 ‘Octave/version’,其中 ‘version’ 是 version 返回的当前Octave版本。

  • Timeout’ — 指定连接的超时时间,单位为秒。

    默认值为5秒。特殊值 ‘Inf’ 将超时设置为最大值2147.483647秒。

  • Username’ — 基本HTTP连接的用户标识。

    默认值为''。必须是字符串。

  • Password’ — HTTP连接的用户身份验证密码。

    默认值为''。必须是字符串或字符向量。

    编程提示:如果显示一个设置了Password属性的weboption对象,该值会显示为包含 '*'的字符串。然而,该对象以明文形式存储Password属性的值。

  • KeyName’ — 指定要添加到HTTP请求头的额外键的名称。

    它必须是字符串或字符向量。应与 ‘KeyValue’ 配对使用。

  • KeyValue’ — 指定 ‘KeyName’ 键的值。

    KeyName’ 必须先赋值,然后才能指定此字段。

  • HeaderFields’ — 指定连接的请求头字段。

    请求头字段的名称和值,指定为一个m×2的字符串元胞数组, 用于添加到HTTP请求头。 HeaderFields{i,1} 是字段名, HeaderFields{i,2} 是其值。

    weboptions ("HeaderFields",
                {"Content-Length", "78" ;
                 "Content-Type", "application/json"})
    

    创建一个包含两个请求头字段的weboptions对象: Content-Length(值为 78)和 Content-Type( 值为 application/json)。

  • ContentType’ — 指定数据的内容类型。

    以下值可用: ‘auto’、‘text’、‘json

    默认值为 ‘auto’。它会自动确定内容类型。 所有其他格式,如 ‘audio’、‘binary’ 等,在 MATLAB中可用的这些格式,目前尚未支持。

  • ContentReader’ — 尚未实现。仅为 MATLAB 兼容性提供。
  • MediaType’ — 尚未实现。仅为 MATLAB 兼容性提供。
  • RequestMethod’ — 指定要发出的请求类型。

    以下方法可用: ‘get’、‘put’、‘post’、‘delete’、‘patch

    webread 使用HTTP GET方法。webwrite 默认使用HTTP POST方法。

  • ArrayFormat’ — 尚未实现。仅为 MATLAB 兼容性提供。
  • CertificateFilename’ — 尚未实现。仅为 MATLAB 兼容性提供。

参见: webread, webwrite.


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2