1. 程式人生 > >Android學習記錄(十三) http之digest鑑權之填坑6.0。

Android學習記錄(十三) http之digest鑑權之填坑6.0。

背景:

android 6.0.1 的手機發現使用webdav下載檔案實效,httpclient.execute get的時候出現:

CrashHandler: java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
                                                                   at org.apache.http.impl.auth.DigestScheme.isGbaScheme(DigestScheme.java:210)

原來知道android 6.0系統的apache的httpclient已經不維護了,沒想到問題來的如此之快。

兩個方案:

1.使用系統的httpurlconnection,然後自己寫鑑權。

2.升級apache的庫。apache提供了專門支援android的庫。

記錄一下填坑的情況:

一開始總覺得用系統的肯定好麼,然後就開始google之旅。

這是網上推薦的自己寫的digest鑑權,https://gist.github.com/slightfoot/5624590

中間為了填guava的坑,各種google,修改guava的模式到標準模式,過程略過不提。

然而最後抓包發現結果是崩潰的。。。

md5加密出來的欄位和原來的httpclient加密出來的欄位是不一致的。然而偶還沒有努力去學好webdav協議的覺悟,第一條路pass吧。

第二條路:

參見:

http://stackoverflow.com/questions/36262232/android-6-0-httpclient-issue-with-lg-g3-phone

10min搞定。。。。

暫時沒有發現問題。