我正在使用以下OkHttp API设置SSL Factory:

OkHttpClient.Builder.sslSocketFactory(sslContext.getSocketFactory(), x509TrustManager);


要获取sslContext,我需要创建SchemeRegistry

SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("https", new SslSocketFactory(sslContext), 443));


但是,这将导致以下崩溃:

ClassNotFoundException: Didn't find class "org.apache.http.conn.scheme.SchemeRegistry"


我该怎么做才能避免坠机?

最佳答案

过时的SchemeRegistry类在Android P上不再可用。

如果您仍然想要/需要使用旧版HTTP API,

useLibrary 'org.apache.http.legacy'


androidbuild.gradle部分中,您还需要添加

    <uses-library
        android:name="org.apache.http.legacy"
        android:required="false" />


清单中的<application>标签。

09-25 20:27