Java okhttp3无法找到可接受的协议
我使用以下设置InteliiJ+java8+Webservice+OkHTTP(3.12.12)+Glassfish(4.1.1)来调用restapi,但在连接到它时遇到一些问题 java.net.UnknownServiceException:找不到可接受的协议。 isFallback=false, 模式=[ConnectionSpec(密码套件=[TLS\U AES\U 128\U GCM\U SHA256, TLS_AES_256_GCM_SHA384,TLS_CHACHA20_Poly 1305_SHA256, TLS_AES_128_CCM_SHA256,TLS_AES_256_CCM_8_SHA256, TLS_ECDHE_ECDSA_与_AES_128_GCM_SHA256, TLS_ECDHE_RSA_与_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_与_AES_256_GCM_SHA384, TLS_ECDHE_RSA_与_AES_256_GCM_SHA384, 与CHACHA20和POLY1305和SHA256, TLS_ECDHE_RSA_与_CHACHA20_poly 1305_SHA256, TLS_ECDHE_RSA_与_AES_128_CBC_SHA, TLS_ECDHE_RSA_与AES_256_CBC_SHA,TLS_RSA_与AES_128_GCM_SHA256, TLS_RSA_带AES_256_GCM_SHA384,TLS_RSA_带AES_128_CBC_SHA, TLS_RSA_与_AES_256_CBC_SHA,SSL_RSA_与_3DES_EDE_CBC_SHA], TLS版本=[TLS_1_3,TLS_1_2,TLS_1_1,TLS_1_0], supportsTlsExtensions=true),ConnectionSpec()],受支持 协议=[TLSv1.2,TLSv1.1,TLSv1] 我怀疑这可能是TLS版本的问题,也就是说,我通过OkHTTP以较低的TLS呼叫。但是JDK 8默认使用TLS 1.2。我还将TLS设置为TLS 1.2,代码仍然没有结果。现在我想知道还有什么其他设置会导致此问题。很抱歉,这是我第一次使用java构建Web服务。如果有其他设置我需要做,请告诉我 下面是我的代码Java okhttp3无法找到可接受的协议,java,intellij-idea,glassfish,okhttp,Java,Intellij Idea,Glassfish,Okhttp,我使用以下设置InteliiJ+java8+Webservice+OkHTTP(3.12.12)+Glassfish(4.1.1)来调用restapi,但在连接到它时遇到一些问题 java.net.UnknownServiceException:找不到可接受的协议。 isFallback=false, 模式=[ConnectionSpec(密码套件=[TLS\U AES\U 128\U GCM\U SHA256, TLS_AES_256_GCM_SHA384,TLS_CHACHA20_Poly
ConnectionSpec requireTLS12 = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
.tlsVersions(TlsVersion.TLS_1_2)
.build();
OkHttpClient client = new OkHttpClient.Builder()
.connectionSpecs(Arrays.asList(requireTLS12))
.build();
Request request = new Request.Builder()
.url("https://restcountries-v1.p.rapidapi.com/all")
.get()
.addHeader("x-rapidapi-host", "restcountries-v1.p.rapidapi.com")
.addHeader("x-rapidapi-key", "key_key_key")
.build();
try (Response response = client.newCall(request).execute()) {
ResponseLah = response.body().string();
// ... do something with response
return ResponseLah;
} catch (IOException e) {
e.printStackTrace();
}
这有用吗?客户端和服务器之间可能没有任何交集。我很抱歉@JesseWilson我不明白这是否意味着它显示错误的原因是因为“没有媒体可以与之交谈”,即像可信证书一样?您的服务器和客户端需要支持足够的协议,以确保存在交叉点。这有帮助吗?客户端和服务器之间可能没有任何交集。我很抱歉@JesseWilson我不明白这是否意味着它显示错误的原因是因为“没有媒体可以与之交谈”,即像可信证书一样?您的服务器和客户端需要支持足够的协议,以确保存在交叉点。