1

我正在尝试使用读取的 url 下载 https 页面:

str=urlread('https://funds.barclaysstockbrokers.co.uk/clients/bsl/search_factsheet_summary.aspx?code=B0XWN14')

不幸的是,我收到一个错误:

Error downloading URL. Your network connection may be down or your proxy settings improperly configured.

我尝试使用 urlread2 (http://www.mathworks.co.uk/matlabcentral/fileexchange/35693-urlread2/content/urlread2.m)

但这给了我这个错误:

Response stream is undefined
 below is a Java Error dump (truncated):
??? Error using ==> urlread2 at 217
Java exception occurred:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

我需要做什么?

4

3 回答 3

1

这是我所做的:

http://www.mathworks.com/matlabcentral/answers/39563-managing-public-key-certificates-in-matlab

简要总结:它涉及使用 Chrome 导出证书,然后使用http://portecle.sourceforge.net/将证书添加到 Matlab 的 Java 的 cacerts 文件

于 2015-03-05T01:52:28.910 回答
0

这是一个证书安全信任问题。

我在 Mathematica 中尝试了相同的命令,并得到了这个漂亮的弹出窗口,询问我是否要接受证书

str="https://funds.barclaysstockbrokers.co.uk/clients/bsl/search_factsheet_summary.aspx"
Import[str]

在此处输入图像描述

当我只为这个会话点击接受时,我得到了数据

我不使用 urlread()。但至少现在你知道为什么了。我在 urlread 中看不到执行上述操作的选项。可能你需要 Matlab 中的另一个 API 来做你想做的事。可能是 matlab 文件交换中的某些东西可能会处理这个问题。

于 2012-11-23T00:42:04.417 回答
0

在 matlab 2014b 之后,您可以使用:

DATA = webread(URL)

这个新的 API 没有 urlread 命令的所有问题。

于 2017-03-29T01:47:19.887 回答