Volley 已经发布很长时间了, 也已被广泛应用, 相关教程到处都是. 本文只说两个值得注意的地方.
本文讲解部分比较少, 请参阅提供的相关链接. 完整的实现代码在Github dodocat/AndroidNetworkDemo可能看起来比这里更清晰.
使用 OkHttp 作为传输层的实现.
Volley 默认根据 Android 系统版本使用不同的 Http 传输协议实现.
在 Android 3.0 以上 Volley 使用ApacheHttpStack作为传输协议, 在2.3 及以下使用HttpURLConnection作为传输层协议
OkHttp 相较于其长春网站建设公司 它的实现有以下的优点.
支持SPDY,允许连接同一主机的所有请求分享一个socket。 如果SPDY不可用,会使用连接池减少请求延迟。 使用GZIP压缩下载内容,且压缩操作对用户是透明的。 利用响应缓存来避免重复的网络请求。 当网络出现问题的时候,OKHttp会依然有效,它将从常见的连接问题当中恢复。 如果你的服务端有多个IP地址,当第一个地址连接失败时,OKHttp会尝试连接其他的地址,这对IPV4和IPV6以及寄宿在多个数据中心的服务而言,是非常有必要的。
因此使用 OkHttp 作为替代是好的选择.
1.首先用 OkHttp 实现一个新的HurlStack用于构建 Volley 的 requestQueue.
2.然后使用 镇江网站建设公司 OkHttpStack 创建新的 Volley requestQueue.
这样就行了.
使用 Https
作为一个有节操的开发者应该使用 Https 来保护用户的数据, Android 开发者网站上文章Security with HTTPS 网站 开发 工程师 and SSL做了详尽的阐述.
OkHttp 自身是支持 Https 的. 参考文档OkHttp Https, 直接使用上面的OkHttpStack就可以了, 但是如果遇到服务器开发哥哥使用了自签名的证书(不要问我为什么要用自签名的), 就无法正常访问了.
网上有很多文章给出的方案是提供一个什么事情都不做的TrustManager跳过SSL的验证, 这样做很容受到攻击, Https 北京通州区网站建设公司也就形同虚设了.
我采用的方案是将自签名的证书打包入 APK 加入信任.
好处:
应用难以逆向, 应用不再依赖系统的 trust store, 使得 Charles 抓包等工具失效. 要分析应用 API 必须反编译 APK. 不用额外购买证书, 省钱....
缺点:
证书部署灵活性降低, 一旦变更证书必须升级程序.
实现步骤
以最著名的自签名网站12306为例说明
1.导出证书
将证书转为 bks 格式
2.下载最新的bcprov-jdk, 执行下面的命令. storepass 是导出密钥文件的密码.
3.将导出的 kyfw.bks 文件放入 res/raw 文件夹下.
4.创建SelfSignSslOkHttpStack
5.然后用SelfSignSslOkHttpStack创建 Volley 的 RequestQueue.
6.我们来试一试, 用上一步穿件的 RequestQueue 替换掉原来的, 然后发请求试试.
7.done
南京牧狼文化传媒有限公司简介:
牧狼传媒,牧者之心,狼者之性,以牧之谦卑宽容之心待人,以狼之团结无畏之性做事!
公司注册资金100万,主营众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放以及电商营销推广全案等相关业务,致力于为客户提供更有价值的服务,创造让用户满意的效果!
为百度官方及其大客户、苏宁易购、金山WPS秀堂、美的、创维家电、新东方在线、伊莱克斯、宝丽莱等国内国外知名品牌服务过,服务经验丰富!同时,公司也是南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位,可以为您提供更好的服务!
主营项目:众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放、竞价托管、网站优化、电商代运营等
合作客户:百度、苏宁易购、饿了么、美的、创维家电、新东方在线、宝丽莱、金山WPS秀堂、伊莱克斯
资质荣誉:百度商业服务市场2017年度最佳图片服务商、南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位、八戒通TOP服务商、"易拍即合杯"H5创意大赛"三等奖"。