gpt4 book ai didi

在配置了代理的环境下运行的 Java 小程序(企业网络)

转载 作者:行者123 更新时间:2023-11-29 03:56:16 25 4
gpt4 key购买 nike

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

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

1) 代理会不会分析我们请求的内容,从而影响应用程序的性能。这可能只是一个特定于 Java 的问题吗?

下一部分专门介绍 Java 和 Java applet。从论坛上我知道 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 需要代理身份验证。 ISA 服务器需要
授权完成请求
所以最后一个问题是关于 Apache 和 Java 客户端之间的差异。

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

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

提前致谢。

最佳答案

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
您可能会发现它很有用。

关于在配置了代理的环境下运行的 Java 小程序(企业网络),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6248134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com