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, success] = urlread (url)
[s, success, message] = urlread (url)
[…] = urlread (url, method, param)

下载从其指定的远程文件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:password@example.com/file.txt");

GET和POST指定可以从指定methodparam.参数method要么是'getpostparam是键值对的元胞数组。例如

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

详见: urlwrite.

 
urlwrite (url, localfile)
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:password@example.com/file.txt",
          "file.txt");

GET和POST指定可以从指定methodparam.参数method要么是'getpostparam是键值对的元胞数组。例如

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

详见: urlread.

 
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.

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

指定RESTful web服务的参数。

weboptions没有输入返回默认值weboptions对象来指定对web服务的指定的参数。一个weboptions对象可以是的可选输入参数webreadwebwrite函数。

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

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

以下参数可用:

  • CharacterEncoding'--指定数据的字符编码:

    auto默认UTF-8’, ‘US-ASCII’‘auto'根据数据的内容类型选择编码。

  • UserAgent'--指定连接的用户代理。

    默认值为'GNU Octave/version这里的version'是返回的Octave的当前版本version.

  • Timeout'--指定连接秒的超时值。

    默认值为10秒。”Inf'当前不受支持。

  • Username'--基本HTTP连接的用户标识符。

    默认值为NULL。它一定是一根绳子。

  • Password'--HTTP连接的用户身份验证密码。

    默认值为NULL。它必须是字符串或字符向量。编程注意事项:如果显示weboption对象,值显示为包含'*'。但是,该对象将Passwordproperty的值存储为纯文本。

  • KeyName'--指定要添加到HTTP指定标头的附加密钥的名称。它应该与“KeyValue’. 它必须是字符串或字符向量。
  • KeyValue'--指定键的值'KeyName’.

    KeyName'必须存在才能赋值到此字段。

  • HeaderFields'--指定连接的标头字段。

    标头字段的名称和值,指定为要添加到HTTP指定标头的字符串的m×2数组或字符向量的元胞数组。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-2025 Octave中文网

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