小编Yur*_*mke的帖子

CertPathValidatorException 连接到 Android M 或更早版本上的 Let's Encrypt 主机

[编辑:如果您在这里参加 Let's Encrypt 从 2021 年 1 月开始的到期活动,请先阅读 https://letsencrypt.org/2020/12/21/extending-android-compatibility.html]

在 Android M 或更早版本上通过 OkHttp连接到https://valid-isrgrootx1.letsencrypt.org/失败,而连接在 N 或更高版本上工作。

    OkHttpClient client = new OkHttpClient();

    try {
      Request request = new Request.Builder()
              .url("https://valid-isrgrootx1.letsencrypt.org/robots.txt")
              .build();
      try (Response response = client.newCall(request).execute()) {
        assertTrue(response.code() == 200 || response.code() == 404);
        assertEquals(Protocol.HTTP_2, response.protocol());
      }
    } catch (SSLHandshakeException sslhe) {
      sslhe.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)
javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:322)
at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:320)
at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.java:284)
at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:169)
at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:258)
at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135)
at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42) …
Run Code Online (Sandbox Code Playgroud)

android okhttp lets-encrypt

18
推荐指数
2
解决办法
1098
查看次数

向 OkHttp 客户端添加自定义证书

我正在尝试制作 Android 应用程序,我可以在其中获取和解析 HTML(来自没有 API 的站点)。我正在使用 OkHttp。该站点具有不受信任(但有效)的证书。我正进入(状态:

java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Run Code Online (Sandbox Code Playgroud)

我已经设置了官方方式(https://developer.android.com/training/articles/security-ssl#java),现在我需要将它与 OkHttpClient 链接。

我试过

    OkHttpClient client = new OkHttpClient;

    OkHttpClient.Builder builder = client.newBuilder();
    builder.sslSocketFactory(sslcontext.getSocketFactory()).build();
Run Code Online (Sandbox Code Playgroud)

但它不起作用,而且它已被弃用。谢谢

java ssl android okhttp

6
推荐指数
2
解决办法
9904
查看次数

Android Retrofit/OkHttp 以编程方式使用 `8.8.8.8` 进行 DNS 查找?

我正在尝试添加 Google DNS 查找,即“8.8.8.8”。在我的 Android 应用程序中,我将 Retrofit 与 OkHttp 一起使用。

可以通过编程实现吗?

我看到了这篇文章,但无法添加它dns-android-okhttp

dns android retrofit okhttp

2
推荐指数
1
解决办法
5306
查看次数

LocalContext.current 上没有默认上下文

使用 LocalContext.current 会导致应用程序崩溃,告诉我:

java.lang.IllegalStateException: No default context
        at androidx.glance.CompositionLocalsKt$LocalContext$1.invoke(CompositionLocals.kt:35)
        at androidx.glance.CompositionLocalsKt$LocalContext$1.invoke(CompositionLocals.kt:35)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at androidx.compose.runtime.LazyValueHolder.getCurrent(ValueHolders.kt:29)
        at androidx.compose.runtime.LazyValueHolder.getValue(ValueHolders.kt:31)
        at androidx.compose.runtime.ComposerImpl.resolveCompositionLocal(Composer.kt:1776)
        at androidx.compose.runtime.ComposerImpl.consume(Composer.kt:1746)
        at com.bqubique.quran_randomayah.view.VerseCardKt.ButtonTile(VerseCard.kt:282)
        at com.bqubique.quran_randomayah.view.ComposableSingletons$VerseCardKt$lambda-2$1.invoke(VerseCard.kt:79)
        at com.bqubique.quran_randomayah.view.ComposableSingletons$VerseCardKt$lambda-2$1.invoke(VerseCard.kt:79)
        at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:116)
        at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
        at
...
Run Code Online (Sandbox Code Playgroud)

使用的版本:

compose_version = '1.0.5'

wear_compose_version = '1.0.0-alpha15'

我尝试过在任何类型的 @Composable 中调用 LocalContext.current,甚至在 setContent{...} 内的 MainActivity.kt 中调用 LocalContext.current

wear-os android-jetpack android-jetpack-compose glance

1
推荐指数
1
解决办法
1409
查看次数