美文网首页
使用Fresco加载https图片

使用Fresco加载https图片

作者: 码了个蛋 | 来源:发表于2017-07-07 14:46 被阅读82次

    处于安全考虑,后台的所有请求都换成了https,但是,某些请求会出现和服务器整数认证不一致的情况,去找后台同事,不怎么上心,╮(╯▽╰)╭哎。。。。。。

    只能使用以下方法

    // Fresco 图片加载

    X509TrustManager xtm =newX509TrustManager() {

    @Override

    public voidcheckClientTrusted(X509Certificate[] chain,String authType) {

    }

    @Override

    public voidcheckServerTrusted(X509Certificate[] chain,String authType) {

    }

    @Override

    publicX509Certificate[]getAcceptedIssuers() {

    X509Certificate[] x509Certificates =newX509Certificate[0];

    returnx509Certificates;

    }

    };

    SSLContext sslContext =null;

    try{

    sslContext = SSLContext.getInstance("SSL");

    sslContext.init(null, newTrustManager[]{xtm}, newSecureRandom());

    }catch(NoSuchAlgorithmException e) {

    e.printStackTrace();

    }catch(KeyManagementException e) {

    e.printStackTrace();

    }

    HostnameVerifier DO_NOT_VERIFY =newHostnameVerifier() {

    @Override

    public booleanverify(String hostname,SSLSession session) {

    return true;

    }

    };

    okHttpClient=newOkHttpClient().newBuilder()

    .connectTimeout(10,TimeUnit.SECONDS)

    .readTimeout(40,TimeUnit.SECONDS)

    .writeTimeout(20,TimeUnit.SECONDS)

    .sslSocketFactory(sslContext.getSocketFactory())

    .hostnameVerifier(DO_NOT_VERIFY)

    .build();

    Set listeners =newHashSet<>();

    listeners.add(newRequestLoggingListener());

    ImagePipelineConfig config = OkHttpImagePipelineConfigFactory

    .newBuilder(this,okHttpClient)

    .setDownsampleEnabled(true)

    .setRequestListeners(listeners)

    .build();

    Fresco.initialize(this,config);

    主要来自:https://www.fresco-cn.org/docs/using-other-network-layers.html

    相关文章

      网友评论

          本文标题:使用Fresco加载https图片

          本文链接:https://www.haomeiwen.com/subject/obglhxtx.html