对于我的 html 应用程序,我需要直接下载 JDK。这个 wget 命令似乎适用于它
wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" "http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-x64.tar.gz"
我如何翻译这个发送自定义标头的 wget,理想情况下是一个 vbscript 行(我更喜欢 vbscript,但如果必须的话,我会满足于 javascript)。PS 我认为 --no-cookies 是可选的,但不确定。我不能使用直接下载链接的原因是oracle要求用户在下面的下载页面上单击接受协议。
此链接用于最新的下载 HTML 页面
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
这是最新的直接 .exe 链接(单击接受协议后)
http://download.oracle.com/otn-pub/java/jdk/7u17-b02/jdk-7u17-windows-x64.exe
或任何其他绕过接受协议问题的方法?
这是我的 vbscript 代码,它* 在第 4 行给出一个“未指定的错误”,带有setRequestHeader
. gpw_e24 中的值我也尝试了上面给出的值,但没有用。
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
URL="http://download.oracle.com/otn-pub/java/jdk/7u17-b02/jdk-7u17-windows-x64.exe"
saveto="c:\java.exe"
objXMLHTTP.setRequestHeader "Cookie", "gpw_e24=http%3A%2F%2Fwww.oracle.com"
objXMLHTTP.open "POST", URL, false
objXMLHTTP.send()
If objXMLHTTP.Status = 200 Then
Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1 'adTypeBinary
objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position = 0 'Set the stream position to the start
Set objFSO = Createobject("Scripting.FileSystemObject")
If objFSO.Fileexists(saveTo) Then objFSO.DeleteFile saveTo
Set objFSO = Nothing
objADOStream.SaveToFile saveTo
objADOStream.Close
Set objADOStream = Nothing
End if
Set objXMLHTTP = Nothing
' Done
WScript.Quit