我使用HttpUrlConnection发送HTTP请求。 我发送请求并获取响应代码。然后我得到响应的输入流并使用它。
我的代码是这样的:
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(host, port));
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection(proxy);
con.setConnectTimeout(10000);
con.setReadTimeout(15000);
int responseCode = con.getResponseCode();
InputStream is = con.getInputStream();
...
代码效果很好。但我遇到了问题。有时它会在发送HTTP请求之前等待3-4分钟,经过很长一段时间后,它会继续成功运行。因此,唯一的问题是为什么它有时会在成功发送http请求之前等待3或4分钟。
我调试了我的代码,我想我找到了等待的地方。这是SSL调试结果。
调查结果:
触发SecureRandom的播种
完成播种SecureRandom
:::::: IT在这里等待3或4分钟。然后继续:::::
允许不安全的重新谈判:false
允许遗留问候消息:true
初始握手:是真的
安全重新谈判:错误
%%没有缓存的客户端会话
*** ClientHello,TLSv1
......(并继续) .......
请注意,它有时只会发生,而不是总是发生。我对它很困惑。任何想法?