Могу ли я установить свойство https.protocols jvm для каждого подключения, а не глобально?

Есть ли способ сделать что-то подобное для каждого соединения, а не для всей JVM?

System.setProperty("https.protocols", "TLSv1");

Я получаю сообщение об ошибке, похожее на это, и в другом посте показано выше, как решение:

javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.writeRecord(Unknown Source)
    at sun.security.ssl.AppOutputStream.write(Unknown Source)
    at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
    at java.io.BufferedOutputStream.flush(Unknown Source)
    at org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(HttpConnection.java:827)
    at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1975)
    at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:993)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324)
    at com.pilotfish.eip.modules.http.HttpPostTransport$2.run(HttpPostTransport.java:233)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.EOFException: SSL peer shut down incorrectly
    at sun.security.ssl.InputRecord.read(Unknown Source)
    ... 15 more

Я не хочу, чтобы это применялось ко всему, что выполняется через JVM, только к одному конкретному вызову внутри одного метода в одном классе.

Это возможно?

Я использую Java для подключения к веб-сервису с использованием HttpClient v3.0.1 в Apache Commons - что-то вроде этого:

import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.HeadMethod;
import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
import org.apache.commons.httpclient.methods.PostMethod;

...

PostMethod post = new PostMethod(getURI(data.getAttributes(), targetUri));

...

HttpClient httpclient = new HttpClient();

...

int result = httpclient.executeMethod(post);

0 ответов

Другие вопросы по тегам