我得到以下异常,通过okhttpclient响应https rest服务调用
我正在使用库com.squareup.okhttp3:okhttpws:3.4.2。
javax.net.ssl.sslexception:无法识别的ssl消息,纯文本连接?位于sun.security.ssl.inputrecord.handleunknownrecord(未知源)
File certFile = resourceLoader.getResource("classpath:" + certKey).getFile();
try {
sslContext = SSLContextBuilder.create()
.loadKeyMaterial(certFile, certKeyPassword.toCharArray(), certKeyPassword.toCharArray())
.loadTrustMaterial(certFile, certKeyPassword.toCharArray()).build();
SSLSocketFactory sslSocketFactory = sslContext().getSocketFactory();
RequestBody formBody = new FormBody.Builder()
.add("<key>", "<value>")
.build();
OkHttpClient okHttpClient = new OkHttpClient.Builder().socketFactory(sslSocketFactory).build();
Request request = new Request.Builder()
.url(https URL)
.post(formBody)
.addHeader("Content-Type", "application/json")
.build();
LOG.info("Request passed: "+request);
response = okHttpClient.newCall(request).execute();
当我使用HTTPURL时,它将https url发送到交互应用程序。但在日志中,我也在执行调用之前打印,它只显示httpurl
我需要使它与https网址工作。
如果需要其他信息,请告诉我。
1条答案
按热度按时间ncgqoxb01#
您不小心将sslsocketfactory传入了socketfactory。
你想要什么
你必须使用一个非常旧版本的okhttp,因为这是专门检查了多年。