36.4.2 WWW访问

Octave可以通过互联网与网站进行通信。这里的web该函数将启动一个外部web浏览器以交互方式查看网站。其主要函数--urlread,urlwrite,webread,webwrite--是内部Octave函数,可以向Octave和从URL(统一资源定位器)标识的网站导入或导出数据。

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

打开url在默认系统web浏览器中。

在没有给出任何参数的情况下,地址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

请求的User agent字符串。

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

请求的User agent字符串。

Username

登录的用户名。

Password

登录的密码。

Charset

字符编码(储存但目前不使用)。

键值对参数的示例如下:

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

For backward compatibility, the old calling form is also supported:

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服务中读取内容。

从指定的web服务读取内容url并将内容返回response.

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

optionsweboptions对象,该对象可用于添加其他HTTP指定参数。此参数可以与任一调用形式一起使用。详见help weboptions以获取支持的HTTP参数的完整列表。

详见: weboptions,webwrite.

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

将数据写入RESTful web服务。

将内容写入指定的web服务url并在中返回显应response.

给定的所有键值对(name1,value1,…)是添加到指定方法主体的查询参数对(get,post,put

optionsweboptions对象,该对象可用于添加其他HTTP指定参数。此参数可以与任一调用形式一起使用。详见help weboptions以获取支持的HTTP参数的完整列表。

详见: weboptions,webread.

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

指定RESTful web服务的参数。

如果不带参数调用,则返回一个weboptions对象,用于指定对web服务的请求参数。一个weboptions 对象是一个可选输入参数,用于webreadwebwrite函数。

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

参数名称必须匹配确切地下表中指定的其中一个。

以下参数可用:

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

    auto’ (default), ‘UTF-8’, ‘US-ASCII’. ‘auto’ 选择数据的 content-type 编码。

  • UserAgent’ — 指定连接的User Agent。

    默认值是 ‘Octave/version’, 此时 ‘version’ 是当前版本的Octave,由version返回.

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

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

  • Username’ — 用户认证的HTTP连接的用户标识符。

    默认是''. 必须是字符串。

  • Password’ — 用于HTTP连接的登录。

    默认是''. 必须是字符串或者字符向量。

    编程注意:如果你显示一个weboption对象并且设置了Password属性,那么其值将以包含'*'的字符串显示。 但是,对象以纯文本形式存储密码属性值。

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

    其必须是字符串或者字符向量。它与 ‘KeyValue’搭配使用.

  • KeyValue’ — 指定键为 ‘KeyName’的值.

    KeyName’ 必须在赋值后才能指定这个字段.

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

    请求头的键和值用m-by-2的字符串单元数组指定,添加到HTTP请求头。 HeaderFields{i,1} 是字段名, HeaderFields{i,2} 是字段值。

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

    创建一个weboptions对象,包含两个字段: Content-Length ,值为 78Content-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默认使用HTTPPOST方法。

  • ArrayFormat’–尚未支持。只为MATLAB兼容性。
  • CertificateFilename’——尚未支持。只为MATLAB兼容性。

详见: webread,webwrite.


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

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