0

手头的任务是登录网站并使用 MATLAB 下载报告。我在这个主题上找不到任何有用的东西。在使用 WinHTTPRequest 之前,我已经在 VB 中编写了代码来执行此操作,但即使在 MATLAB 中也没有帮助。

任何指针、示例或指导将不胜感激。

我已经有 VBA 中的代码并且它非常复杂,所以最好的方法是将 VBA 转换为 MATLAB。我曾经x = actxserver( 'WinHttp.WinHttpRequest.5.1' )发出 HTTP 请求。x.Option(WinHttpRequestOption_EnableRedirects) = enableRedirect除了enableRedirect 为 true之外,一切都有效。我试过以下没有运气:

WinHttpRequestOption_EnableRedirects = 6;
set( x, 'Option', WinHttpRequestOption_EnableRedirects, enableRedirect );
x.set('Option',WinHttpRequestOption_EnableRedirects,enableRedirect);
x.set('Option',6,enableRedirect);

有没有人设法在 Matlab 中设置此选项?

4

3 回答 3

1

Matlab 具有功能urlreadftp看起来可能是您的良好起点。与以往一样,阅读文档。

于 2012-07-18T11:49:49.260 回答
0

如果比较复杂的Java方法可以直接在matlab中使用。

例如。建议如何使用 Java 从网站检索 URL?

在 Matlab 中看起来像这样:

url = java.net.URL('http://example.com')
connection   = url.openConnection
connection.setRequestMethod('GET')
connection.connect()
stream = connection.getInputStream()

几乎一样——不是吗?您肯定会在 Java 中找到用于身份验证的方法。

于 2012-07-18T12:02:11.223 回答
0

我使用了以下代码:

x = actxserver( 'WinHttp.WinHttpRequest.5.1' );
x.Open(sType, sUrl, false);
if strcmp( sType,'POST');
    x.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
else
    x.SetRequestHeader('Content-Type', 'text/html')
end

x.SetRequestHeader('If-Modified-Since', 'Jan 1 2000 00:00:00 UTC' );
x.SetRequestHeader('Pragma', 'no-cache' );

if ~isempty( sCookie )
    x.SetRequestHeader('Cookie', sCookie);
end
x.SetRequestHeader('Accept-Language', 'en-gb');
x.SetRequestHeader('Connection', 'Keep-Alive');
x.SetRequestHeader('Accept', '*/*');
x.SetRequestHeader('UA-CPU', 'x86');
x.Send (sSoap)
writeStringToFile(sFileNameAndPath, x.responseText, true);
于 2012-08-10T12:42:09.107 回答