使用Matlab和urlread从https读取数据?

使用Matlab和urlread从https读取数据?,matlab,https,urlread,Matlab,Https,Urlread,我正在尝试使用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 configur

我正在尝试使用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

我需要做什么?

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

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

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

当我点击accept for the session only时,我得到了数据OK

我不使用urlread()。但至少现在你知道为什么了。我在urlread中看不到选项
要做到以上几点。可能您需要Matlab中的另一个API来实现您想要的功能。matlab文件交换可能会处理此问题。

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

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

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

当我点击accept for the session only时,我得到了数据OK

我不使用urlread()。但至少现在你知道为什么了。我在urlread中看不到选项 要做到以上几点。可能您需要Matlab中的另一个API来实现您想要的功能。matlab文件交换可能会处理这个问题。

以下是我所做的:

小结: 它涉及使用Chrome导出证书,然后使用将证书添加到Matlab的Java的cacerts文件中

小结:
它涉及使用Chrome导出证书,然后使用将证书添加到Matlab的Java的cacerts文件中。在Matlab 2014b之后,您可以使用:

DATA = webread(URL)

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

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

DATA = webread(URL)

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

您可以下拉并直接调用Java API,Matlab的
urlread
构建在这些API之上。Matlab附带了ApacheHttpClient库,您可以调整它以忽略证书验证错误。去年我们也做过类似的工作。你可以直接调用Java API,Matlab的
urlread
就是建立在这些API之上的。Matlab附带了ApacheHttpClient库,您可以调整它以忽略证书验证错误。去年,我不得不在工作中做类似的事情。