我正在尝试下载一个文件,该文件位于带有身份验证的网站后面。该服务提供了一个使用wget下载文件的示例脚本。
现在,我正在尝试在Java 中模拟该功能
set WGET_PARAM= --no-check-certificate --secure-protocol=TLSv1
set DOWNLOAD_PARAM=-nd -N -r --level=2 --include-directories=blob --accept=csv,txt,zip %PAGE%
REM * wget --save-cookies cookies.txt %WGET_PARAM% --keep-session-cookies --post-data %ACCOUNT% -O NUL https://www.example.com!login
wget --load-cookies cookies.txt %WGET_PARAM% %DOWNLOAD_PARAM%
REM * wget --load-cookies cookies.txt %WGET_PARAM% --post-data="x=1" -O https://www.example.com!logout
知道我如何绕过无检查证书安全协议=TLSv1吗?
谢谢你的帮助。
这里有一个库,它提供了一个如何使用它的例子
https://github.com/axet/wget
我已经按照@Andrew Henle的建议做了。我遇到的一个问题是获取会话cookie。解决方案是使用
httpsConnection.setInstanceFollowRedirects(false);
这也有助于:为了能够在HttpURLConnection.getHeaderFields中查看设置Cookie值,不应该设置CookieManager。
https://bugs.openjdk.java.net/browse/JDK-8036017