gpt4 book ai didi

curl - urlread(), urlwrite() 不适用于 Octave for Windows 中的 https 页面

转载 作者:行者123 更新时间:2023-12-04 23:53:58 25 4
gpt4 key购买 nike

当我使用 Cygwin 中安装的 Octave 3.8.1 时,我可以成功下载 https 页面,如下所示:

urlwrite('https://www.google.com', 'downloaded.html')

但是,当我使用安装在 Windows 7 SP1 Pro 64bit 中的 Octave 3.6.4 时,urlwrite() 不起作用:
octave-3.6.4.exe:18> urlwrite('https://www.google.com', 'downloaded.html')
error: urlwrite: curl: Problem with the SSL CA cert (path? access rights?)

urlread() 也有同样的问题。
有什么好的方法可以避免这个错误吗?

更新:

按照安迪的建议,我试图解决与 curl 相关的问题。目前,curl.exe 可以用于 https,但 libcurl(我认为嵌入在 Octave 中)不适用于 https。让我解释一下我做了什么。

我从 here 下载了 curl.exe .起初,它不适用于这样的 https:
C:\somewhere\curl-7.33.0-win64-nossl>curl https://www.google.com/
curl: (1) Protocol https not supported or disabled in libcurl

我从 here 下载“cacert.pem”后,重命名为“curl-ca-bundle.crt”,放入C:\windows\system32,curl.exe可以从https站点提取页面。

但是,当我在 Octave 中使用 urlwrite() 时,它仍然无法正常工作。我猜 Octave 在内部调用 libcurl API,但我不知道如何强制 libcurl 查找 CA 证书。

最佳答案

我在 Octave 4.0.0 for Windows 中使用 urlread() 有相同的探针。我尝试了几件事,但没有奏效。我确实设法让 curl 命令行工具正常工作。所以最后对我来说最简单的事情是编写我自己的 urlread() ,它使用 Octave 的 system() 函数调用 curl:
function retval=my_urlread(url)
command=['curl --silent ','"',url,'"'];
[output,text]=system(command);
retval=text;
endfunction

关于curl - urlread(), urlwrite() 不适用于 Octave for Windows 中的 https 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26237960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com