Android学习记录(十二) http之base/digest鉴权。
2016-05-04 18:44
946 查看
说下背景,我们实现的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框架,欢迎推荐啊~
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories