再用代理连接的时候:
System.setProperty("http.proxySet", "true");
System.setProperty("http.proxyHost", proxyAddr);
System.setProperty("http.proxyPort", proxyPort);
现在不想用代理进行连接:
System.setProperty("http.proxySet", "false");
System.getProperties().remove("http.proxyHost");
System.getProperties().remove("http.proxyPort");
但是再上面的设置后,线程休眠30秒后, 还是可以连接到目的服务器, 如果休眠60秒,就连接不上。 我怀疑有个系统属性可以设置代理的有效时间, 不知道是什么属性值。 哪位大侠搞过这个方面的东西 请帮帮小弟啊。

解决方案 »

  1.   

    还有一个可能,我没有实践过。 你的那个线程在连接的那个类里面读取了系统的属性,他只读一次,
    所以如果你测试的话,应该新建一个线程,或者一个新的 URLConnection
      

  2.   

    我是用的新的URLConnection, URLConnection对象是在communication类中构造的。 
    我在线程的run方法里每次都会重新构造communication对象, 并且在run里连接 取得数据后 就用URLConnection的disconnect断开连接。问题是如果我在run里sleep 60秒, 再连接, 修改过的配置参数就生效了, 但是用30秒 就不行,就算代理参数删掉,还是可以连接成功,我连接的每一次都是重新构造对象, 相当于上次的过程 都重新做一次, 重新读取配置代理的文件,用新的参数连接。 我在程序里也输出了用代理 和不用代理时候的参数值, 当不用代理时,http.proxyHost这类属性值已经为null了 为什么还可以连接到外网的ip呢?