无法在HTTP代理后面使用wget下载Oracle的jdk-8u181软件包

时间:2018-08-01 15:22:50

标签: oracle java-8 wget http-proxy

我正在尝试使用WebUpd8小组的oracle-java8-installer在我的Ubuntu 14.04计算机上安装Java 8。他们中的一些人可能成功,但其他人却失败了。经过调试后,我意识到这是由 HTTP代理设置引起的。我将在下面提供更多详细信息,但是基本上我的问题是:为什么使用http_proxy会导致问题?我相信这必须与HTTP代理的工作方式有关,但是由于我对此没有什么经验,有人可以告诉我我应该学习哪些知识来理解这个问题?

这里有更多详细信息。

在后台,oracle-java8-installer使用wget下载jdk-8u181软件包。因此,我可以按照以下步骤重现该问题

  • 安装apt-cacher-ngsudo apt-get install apt-cacher-ng
  • 您无需在APT配置中进行任何配置即可重现此问题。 apt-cacher-ng默认使用localhost:3142来缓存程序包。
  • 运行http_proxy="http://localhost:3142" wget --continue --no-check-certificate -O jdk-8u181-linux-x64.tar.gz --header "Cookie: oraclelicense=a" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

以下是一些注意事项:

  • http://localhost:3142配置了apt-cacher-ng。在我尝试安装jdk-8u181之前,那些失败的机器已经安装了apt-cacher-ng
  • Cookie: oraclelicense=a表示用户已接受许可证。

如果运行最后一条命令,jdk-8u181-linux-x64.tar.gz的下载将立即完成。一行显示“代理请求已发送,正在等待响应... 200 OK”。但是,如果打开接收到的“ .tar.gz”,则会看到它只是一个包含错误信息的HTML页面。

如果您删除http_proxy环境变量并运行:

wget --continue --no-check-certificate -O jdk-8u181-linux-x64.tar.gz --header "Cookie: oraclelicense=a" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

您将正确下载完整的软件包。

我的最佳猜测是,如果目标URL是最终URL,则HTTP代理可与wget一起使用,因此该代理会将其缓存在其存储中。从概念上讲,它就像一个键值存储:

proxy['URL'] = result

但是,在这种情况下,目标URL(http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz)实际上为新URL返回一个"302" code和一个“ Location”标头字段。从输出中可以看到:

  

ywen @ ubuntu:〜$ wget --continue --no-check-certificate -O   jdk-8u181-linux-x64.tar.gz --header“ Cookie:oraclelicense = a”   http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz   --2018-08-01 11:10:04-- http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

     

正在解析download.oracle.com(download.oracle.com)... 23.32.72.143

     

连接到download.oracle.com   (download.oracle.com)| 23.32.72.143 |:80 ...已连接。

     

HTTP请求已发送,正在等待响应... 302临时移动

     

位置:   https://edelivery.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz   [以下]

     

-2018-08-01 11:10:04-- https://edelivery.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

     

正在解析edelivery.oracle.com(edelivery.oracle.com)...   23.216.148.161,2001:559:19:3081 :: 2d3e,2001:559:19:3086 :: 2d3e

     

连接到edelivery.oracle.com   (edelivery.oracle.com)| 23.216.148.161 |:443 ...已连接。

     

HTTP请求已发送,正在等待响应... 302临时移动

     

位置:   http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1533136324_72efc4e6208a5a7fc1cbba0527c741b6   [以下]

     

-2018-08-01 11:10:04-- http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1533136324_72efc4e6208a5a7fc1cbba0527c741b6

     

连接到download.oracle.com   (download.oracle.com)| 23.32.72.143 |:80 ...已连接。

     

HTTP请求已发送,正在等待响应... 200 OK

     

长度:185646832(177M)[application / x-gzip]

     

保存到:“ jdk-8u181-linux-x64.tar.gz”

处理重定向超出了代理的能力(我是正确的吗?),因此那些使用HTTP代理设置的计算机失败了。

0 个答案:

没有答案