Java 如何从eclipse网络设置访问动态代理?

Java 如何从eclipse网络设置访问动态代理?,java,eclipse,proxy,Java,Eclipse,Proxy,我正在开发一个需要连接到远程服务器的Eclipse插件。我正在尝试使用Eclipse网络设置来获取代理主机和端口。我已经能够使用IProxyService和IProxyData类获取“手动”设置代理,如果在本地计算机中设置,还可以获取“本机”代理设置。当proxyProvider设置为Native并且proxyHost和Port值在Eclipse设置中显示为动态时,就会出现问题。有没有办法访问这些值 谢谢。 您的问题不在于插件连接阶段是在Eclipse在运行时确定主机之前执行的吗?这是我看到的E

我正在开发一个需要连接到远程服务器的Eclipse插件。我正在尝试使用Eclipse网络设置来获取代理主机和端口。我已经能够使用
IProxyService
IProxyData
类获取“手动”设置代理,如果在本地计算机中设置,还可以获取“本机”代理设置。当proxyProvider设置为Native并且proxyHost和Port值在Eclipse设置中显示为动态时,就会出现问题。有没有办法访问这些值

谢谢。

您的问题不在于插件连接阶段是在Eclipse在运行时确定主机之前执行的吗?这是我看到的Eclipse网络设置的静态和动态定义之间的唯一区别。

设置代理时,以下几点对我来说总是很有用

System.setProperty("https.proxyHost", "myproxy.domain.com");
System.setProperty("https.proxyPort", "myport");

谢谢各位的回复

这可以使用eclipse中的IProxyService类来完成。下面的代码段在某些情况下使用了反射,您可以忽略这些情况。再看看这个链接()

1) 获取代理跟踪器

private ServiceTracker getProxyTracker () throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
    if (proxyTracker != null)
        return proxyTracker;

    String proxyServiceClassName = "org.eclipse.core.net.proxy.IProxyService";
    String bundleClassName = "org.osgi.framework.Bundle";
    Class bundleClass = Class.forName(bundleClassName);
    Method getBundleContextMth = bundleClass.getMethod("getBundleContext", null);
    getBundleContextMth.setAccessible(true);

    BundleContext bundleCntx = (BundleContext) getBundleContextMth.invoke(bundle, null);
    proxyTracker = new ServiceTracker(bundleCntx, proxyServiceClassName, null);
    proxyTracker.open();

    return proxyTracker;
}
2) 使用“isProxiesEnabled”方法检查代理是否已启用


3) 根据eclipse版本的不同,使用“getProxyDataForHost”或“select”方法访问eclipse代理信息(主机、用户ID、密码等)。

是否动态=由javascript函数根据目标主机计算?您是否尝试过使用IProxyService.select(URI)方法并在那里指定您的目标url?