【发布时间】:2012-08-23 13:40:59
【问题描述】:
我的程序应该向 https 站点发出多个 POST 请求,我需要它在每次发出新请求时进行 SSL 握手。 然而,它似乎只在第一次握手,然后使用现有连接来执行其他请求而无需新的握手。我敢肯定它以后不会握手,因为第一次做请求和收到响应大约需要 700 毫秒,但后来只需要大约 30 毫秒。
这是我初始化客户端的方式:(我在这里缺少一些属性吗?)
SSLContext context = SSLContext.getInstance("SSL");
context.init(kms, trustAllCerts, null);
SSLContext.setDefault(context);
ClientConfig config = new DefaultClientConfig();
config.getProperties().put(ClientConfig.PROPERTY_READ_TIMEOUT, timeout * 1000);
config.getProperties().put(ClientConfig.PROPERTY_FOLLOW_REDIRECTS, false);
config.getFeatures().put(ClientConfig.FEATURE_DISABLE_XML_SECURITY, true);
client = Client.create(config);
这是我提出实际请求的方式:
ClientResponse cr = service.type(MediaType.APPLICATION_XML).accept(MediaType.APPLICATION_XML).post(ClientResponse.class, batch);
(服务变量是 Builder 类,它创建 ClientRequest。它是指定 URL 的地方。)
有什么想法吗?
【问题讨论】:
-
“我需要它在每次发出新请求时进行 SSL 握手。”为什么?
-
用于测试它发出请求的服务器如何处理它。