使用HttpUrlConnectiom,SSLHandshake非常慢

时间:2015-11-26 14:04:38

标签: java http ssl https

我使用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

......(并继续) .......

请注意,它有时只会发生,而不是总是发生。我对它很困惑。任何想法?

0 个答案:

没有答案