【问题标题】:Java applet running under proxy-configured environment (corporate networks)在代理配置环境(企业网络)下运行的 Java 小程序
【发布时间】:2011-06-06 05:35:36
【问题描述】:

我在使用签名的 Java 小程序时遇到问题,该小程序对我们的服务器执行简单的 HTTPS 请求(使用 Java 的 URL、连接类)。对于大多数客户来说,一切看起来都很好。但是,我们在公司网络下确实有几个客户端,它们位于需要身份验证的代理后面(可能是基于 Windows 登录的身份验证)。对于这些客户,我们经常听到这样的反馈:

尽管我们的网络速度为 20mbps,但应用程序的运行速度非常慢。 20mbps 的连接速度对于我们的应用程序完美运行来说是一个巨大的速度。 所以我的第一个问题具体如下:

1)代理是否会分析我们请求的内容,从而影响应用程序的性能。会不会只是 Java 特有的问题?

下一部分是专门关于 Java 和 Java 小程序的。 从论坛我知道 Java 选择浏览器中配置的正确代理存在问题。有时 Java 小程序无法检测到 IE 中配置的代理,唯一的解决方案是在 Java 的控制面板中也配置它。 说了这么多,接下来的问题是:

2) 考虑到不允许直接连接企业客户端并且 Java 控制面板配置不正确,可能是 Java 插件选择了另一个错误的代理,最终通过它访问服务器,从而导致性能非常低?

我也尝试过使用 Apache 的 HttpClient (http://hc.apache.org/httpcomponents-client-ga/) 来检查它在这种环境下的表现。我已按照 Apache 教程中的说明配置客户端以自动获取 JRE 的代理:

httpclient = new DefaultHttpClient();

    ProxySelectorRoutePlanner routePlanner = new ProxySelectorRoutePlanner(
            httpclient.getConnectionManager().getSchemeRegistry(),
            ProxySelector.getDefault());  
    httpclient.setRoutePlanner(routePlanner);

当我们尝试通过 Apache 的 httpclient 执行请求时,我们面临的是需要身份验证的错误 (407)。具体407 proxy authentication required. the ISA server requires authorisation to fulfill the request 所以最后一个问题是关于 Apache 和 Java 的客户端之间的差异。

3) Java Applet 如何选择代理?以及 Apache Client 的选择逻辑与 Java 的选择逻辑有何不同?

请分享任何您可能会发现可能对我的情况有帮助的经证实的经验。

提前致谢。

【问题讨论】:

  • 一些建议: 1. 尝试将您的子问题分解为多个问题。就我自己而言,尝试一次回答所有多个问题变得很麻烦。
  • 2.您可能希望研究避免这些代理问题的一种方法是使用来自浏览器的 AJAX 或 JSONP 请求而不是 Java 小程序。这样可以确保浏览器处理所有通信。您的小程序会告诉浏览器发出请求 X,然后浏览器将结果返回给您的小程序。
  • 感谢您的建议。但我无法将请求移动到浏览器。应用程序有这样的逻辑,在浏览器中是不可能实现的。 (也不能只分离http请求)

标签: java apache authentication proxy applet


【解决方案1】:

3) Java Applet 如何选择代理?
默认行为:
小程序检查控制面板\java\网络\网络代理设置
并根据那里的配置使用代理。
为小程序设置系统属性不起作用。
即:

System.setProperty("java.net.useSystemProxies","true"); 
System.setProperty("http.proxyHost", "1.1.1.1");
System.setProperty("http.proxyPort", "8080"); 

如果您想更改小程序的代理选择。 那么你可以使用 ProxySelector 类。
也可以看看这个问题how-to-set-http-proxy-in-an-applet
你可能会发现它很有用。

【讨论】:

  • 如何检测浏览器的代理?
猜你喜欢
  • 1970-01-01
  • 2015-09-10
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多