Android 端Https 访问
来源:互联网 发布:sql*plus不能启动 编辑:程序博客网 时间:2024/06/06 12:52
Https 接口使用环境,服务器端一个证书,生成一个客户端证书,在访问服务接口时使用客户端证书,访问服务器端https,增强对传输安全。在开发过程中使用okhttp框架来实现https访问自签名的接口。首先拿到后台自签名证书sChat.cer 放在assets里面。通过getAssets().open("sChat.cer");来读取以下为
OkHttpClient client=null;InputStream in=getResources().getAssets().open("sChat.cer");String result=null;//生成工厂类实例CertificateFactory certificateFactory=CertificateFactory.getInstance("x509");//一种普通的证书格式 符合ITU-T X 509国际标准//获取到证书 Certificate ca = certificateFactory.generateCertificate(in); in.close(); //这里面用的证书没有设置私钥,执行空加载 keyStore.load(null,null); //将得到的证书存放到KeyStore里 keyStore.setCertificateEntry("ca", ca);//请求安全套接字类 TLC请求协议 SSLContext sslContext = SSLContext.getInstance("TLS"); //初始化SSL TrustManagerFactory trustManagerFactory=TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); trustManagerFactory.init(keyStore); sslContext.init(null, trustManagerFactory.getTrustManagers(), null); //创建http客户端 client=new OkHttpClient(); Request request=new Request.Builder().url(url).build(); Log.d(ProjectAssist.TAG, "httpsCheckConnect "+url); Response response=client.newCall(request).execute(); if(response.isSuccessful()){ result=response.body().string(); }
但是在运行的时候
javax.net.ssl.SSLPeerUnverifiedException: Hostname host not verified
SSL 验证服务器证书 Hostname 不匹配
向大神请教的是HostnameVerifier不设置的话,默认返回false,需要自定义实现一个HostnameVerifier
在clinet访问之前设置hostname认证 在里面添加需要的业务服务器地址,进行认证
client.setHostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { // 判断hostname 的合法性,是否是移动端访问的地址 return true; } });
0 0
- Android 端Https 访问
- tomcat 配置 https, android端 访问
- android HttpClient 访问https
- Android访问https服务
- android https访问
- Android访问https链接
- Android访问https链接
- Android访问https不成功
- android 访问https服务器
- android 之HTTPS安全访问
- NOde JS Mac 下创建HTTPS 服务以及Android 端OKGO 访问HTTPS 小结
- [Android实例] Android 使用HttpClient访问https
- Android开发使用https及Webview访问https页面
- Android WebView 访问https显示空白页
- android webview 访问https页面 SslError 处理
- android httpClient 支持HTTPS的访问方式
- android HTTPURLConnection解决不能访问HTTPs请求
- android HTTPURLConnection解决不能访问HTTPs请求
- [Google Guava] 3-缓存
- C语言—算法—小猫钓鱼
- 关于java不能精确计算的问题
- jquery控制商品数量加减改变价格,只能输入数字
- 记录:s:property 标签——value属性使用事项
- Android 端Https 访问
- SQL练习 demo1_select_查询语句
- 语法错误 (操作符丢失) 在查询表达式XXX中
- 有视差的滚动视图-Parallax ScrollView In Swift
- 数据库索引
- Android Material Design新UI控件使用大全 二
- 初入c语言程序
- Java遍历一个目录下的所有文件
- 一个完整的EJB Web应用(JPA示例)