Android MediaPlayer访问Https流


现有项目出于安全考虑,使用了Https双向认证,这就要求客户端访问服务端资源时必须提供客户端证书,在使用OkHttpClient时,我们可以通过OkHttpClient配置项来设置SSLSocketFactoryX509TrustManagerHostnameVerifier,而MediaPlayer并没有提供配置网络请求的方法,只能通过setDataSource(Uri)来提供资源地址,但其实MediaPlayer内部也是通过HttpsURLConnection进行的网络访问,我们无法单独配置这一次网络请求,但我们可以配置HttpsURLConnection的默认请求。

通过HttpsURLConnection.setDefaultSSLSocketFactoryHttpsURLConnection.setDefaultHostnameVerifier来指定默认Https证书和域名认证即可

try {
    HttpsURLConnection.setDefaultSSLSocketFactory(
        SSLHelper.getSSLCertifcation(MyApplication.getContext()));
    HttpsURLConnection.setDefaultHostnameVerifier(new UnSafeHostnameVerifier());
} catch (Exception e) {
    e.printStackTrace();
}

文章作者: 萧笑啸
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 萧笑啸 !
 上一篇
CentOS搭建Conturn服务(stun、turn服务器) CentOS搭建Conturn服务(stun、turn服务器)
安装 使用yum安装coturnyum install coturn 添加用户turnadmin -a -u username -r xxx.xxx.xxx.xxx -p password 生成签名证书openssl req -x509
2021-05-14
下一篇 
IDEA/Android Studio 窗口不显示问题 IDEA/Android Studio 窗口不显示问题
今天在双屏使用IDEA时,拖动IDEA到另一块屏幕上的时候,窗口不显示了,网上搜这个问题时,说的方法大多为修改workspace.xml中的ProjectFrameBounds参数,但是我在项目的.idea目录下的workspace.xml
2020-06-08
  目录