okhttp3无法找到可接受的协议

问题描述

我正在使用以下设置InteliiJ + Java 8 + Web服务+ OkHTTP(3.12.12)+ Glassfish(4.1.1)来调用REST Api,但在连接到REST Api时会遇到一些问题

java.net.UnkNownServiceException:无法找到可接受的协议。 isFallback = false, 模式= [ConnectionSpec(cipherSuites = [TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384,TLS_CHACHA20_poly1305_SHA256, TLS_AES_128_CCM_SHA256,TLS_AES_256_CCM_8_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_CHACHA20_poly1305_SHA256, TLS_ECDHE_RSA_WITH_CHACHA20_poly1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA], tlsversions = [TLS_1_3,TLS_1_2,TLS_1_1,TLS_1_0], supportTlsExtensions = true),ConnectionSpec()],受支持 协议= [TLSv1.2,TLSv1.1,TLSv1]

我对此的怀疑可能是TLS版本问题,即我通过具有较低TLS的OkHTTP进行调用,但JDK 8认使用TLS 1.2。我也将TLS设置为TLS 1.2,但代码仍然没有结果。现在我想知道还有什么其他设置会导致此问题。对不起,这是我第一次使用Java构建Web服务。我需要做的设置请告诉我。

我的下面的代码

 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();
        }
        

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)