Android学习记录(十二) http之base/digest鉴权。
来源:互联网 发布:企业沟通软件 编辑:程序博客网 时间:2024/06/05 16:39
说下背景,我们实现的http的文件下载是基于webdav协议的。
这个肯定是需要鉴权的~
android 5.1不再推荐使用apache的client,今天努力想尝试一下用httpurlconnection替换一下。
大家可以到stackoverflow搜索一下,目前httpurlconnection还不支持digest鉴权,只支持base的鉴权。
下面是httpurlconnection base的鉴权代码:
HttpURLConnection conn=(HttpURLConnection)newurl.openConnection();setJellyBeanAuth(conn);
private void setJellyBeanAuth(HttpURLConnection httpConn) { byte[] auth = (LoginManager .getCurrentUsername() + ":" + LoginManager .getCurrentPassword()).getBytes(); String basic = Base64.encodeToString(auth, Base64.NO_WRAP); httpConn.setRequestProperty("Authorization", "Basic " + basic);}
然后偶们需要的是digest鉴权,所以还的老老实实使用httpclient
digest的鉴权代码如下:
HttpContext context = new BasicHttpContext();context.setAttribute(ClientContext.CREDS_PROVIDER, new BasicCredentialsProvider());CredentialsProvider provider = (CredentialsProvider) context .getAttribute(ClientContext.CREDS_PROVIDER);provider.setCredentials( new AuthScope(targetHost.getHostName(), targetHost .getPort()), new UsernamePasswordCredentials(LoginManager .getCurrentUsername(), LoginManager .getCurrentPassword()));
关于httpurlconnection不支持digest的可以看这篇文章:
http://stackoverflow.com/questions/32689185/digest-authentication-in-android-using-httpurlconnection
如果有大牛看到这篇blog,有好的开源http框架,欢迎推荐啊~
0 0
- Android学习记录(十二) http之base/digest鉴权。
- Android学习记录(十三) http之digest鉴权之填坑6.0。
- Android Framework/base 学习记录
- HTTP之Digest authentication
- oracle学习记录之十二
- Android学习记录(十四) digest鉴权的文件播放
- Http认证之Digest认证
- Redis学习记录之命令Set(十二)
- Redis学习记录之Server(二十二)
- http协议之digest(摘要)认证
- android学习记录(十二)android设备兼容性
- Android 学习笔记 二十二 之Handler
- Android Framework学习(十二)之获取ServiceManager
- AngularJS学习之$digest循环和$apply
- 【Android】Http Digest 认证在android平台的实现
- http学习笔记之状态码记录
- python十二天学习记录
- HTTP协议学习笔记十二
- JavaScript在Unicode值和字符串中的字符间转换
- 关于ubuntu内核升级的问题
- python PIL图片处理模块实例
- js 数组与对象的区别
- 为什么$(selector)之后,返回的是jQuery对象?
- Android学习记录(十二) http之base/digest鉴权。
- mysql主从复制的高可用解决方案
- Python-OpenCV 图像与视频处理
- NVIDIA JETSON 连接九轴IMU传感器(GY-85模块)
- 驱动编程-idt hook--中断描述符表
- 分布式配置管理平台 Disconf
- Spring @PostConstruct and @PreDestroy example
- getdate.php var_dump($arry);
- Points in Rectangle (树状数组)