我正在使用我正在使用的库的问题.它可能是图书馆,也可能是我使用它错了!
基本上,当我这样做时(以毫秒为单位的超时)
_ignitedHttp.setConnectionTimeout(1); // v short
_ignitedHttp.setSocketTimeout(60000); // 60 seconds
Run Code Online (Sandbox Code Playgroud)
没有生成超时异常并且它正常工作,但是,当我执行以下操作时,
_ignitedHttp.setConnectionTimeout(60000); // 60 seconds
_ignitedHttp.setSocketTimeout(1); // v short
Run Code Online (Sandbox Code Playgroud)
我得到一个Socket Exception.
所以,我的问题是为什么我不能模拟连接异常?我是否误解了套接字和连接超时之间的区别?图书馆在这里(尚未正式发布).
我希望我的Java程序使用系统的代理配置.因此,我使用在许多地方找到的代码(例如此答案)设置java.net.useSystemProxies为true并调用ProxySelector.getDefault().select(...)以发现我想要访问的特定主机的代理.当我在Internet属性中配置单个显式代理服务器时,这可以正常工作.但是如果我设置了"使用自动配置脚本",它总是返回DIRECT"代理".
我知道该脚本有效,因为我的浏览器可以访问它为其返回代理服务器的主机,并且没有脚本集,它不能.我甚至尝试将脚本简化为最基本的要点:
function FindProxyForURL(url, host)
{
return "PROXY my.proxy.mydomain:3128";
}
Run Code Online (Sandbox Code Playgroud)
它在我的浏览器中工作,但ProxySelector.getDefault().select(...)仍然只返回DIRECT.
我错过了什么吗?(这是在Java 1.6和Windows 7上,它是否重要.)