无法使用HTTPclient 3.1连接到TLS 1.2

时间:2016-09-16 14:09:03

标签: java ssl https tls1.2 apache-commons-httpclient

我有一个正在运行的代码,我已经用它来连接到使用SSL的服务器。我使用的API是commons-httpclient-3.1.jar,我无法升级jar。 服务器已升级为仅使用TSL 1.2。 现在我的现有代码无效。 我目前的代码是

HttpClient httpClient = new HttpClient();
        PostMethod post = new PostMethod("https://XYZserver");
        post.getParams().setParameter("http.protocol.version", HttpVersion.HTTP_1_1);
        File f = new File("C://sampleXml.xml");
        RequestEntity entity = new FileRequestEntity(f, "Application/xml");
        post.setRequestEntity(entity);  
        int statusCode = httpClient.executeMethod(post);

如果我按照链接How to force Commons HTTPClient 3.1 to use TLS 1.2 only for HTTPS?修改我的代码,那么我的代码工作正常。

我几乎没有问题(因为我无法找到他们的答案?)

  • 为什么我们需要一个单独的类CustomHttpsSocketFactory。是否可以修改现有代码以使用TLS
    • 还有其他办法吗?

0 个答案:

没有答案