2012年10月19日金曜日

Androidの標準ブラウザやChromeでPDFのダウンロードが失敗したら「BASIC認証」を疑え

AndroidでWebDAVに置いてあるPDFをダウンロードしようとしたら、どうしてもダウンロードできなくて困った。


Chromeでも2.3の標準ブラウザでも同様。

はじめは日本語ファイル名の問題を疑ったが、英数字のみのファイル名でもダウンロードできない。

おかしいと思ってサーバー上の設定を色々変えながら検証したところ、BASIC認証を外すとダウンロードできることが分かった。

Chromeや標準ブラウザは、PDFのリンクをクリックすると「ダウンロードマネージャー」経由で開こうとする。しかし、この「ダウンロードマネージャー」にブラウザから認証情報が渡っていなくて失敗するのだろう。

つまりPDFに限らず、BASIC認証がかかったURLにあるChromeや標準ブラウザ内で直接開けないファイルはことごとく失敗するだろうと思われ。

Firefoxは「ダウンロードマネージャー」を経由せずに内部で直接開くので問題は無かった。他のブラウザでも同様の仕組みのものは問題が無い可能性が高い。

しかし、AndroidでWebDAVにアクセスする一番いい方法は、WebDAV専用クライアントアプリを使うことだろう。

例えば、このアプリでも正常に開けた。

「WebDAV Navigator Lite」(Android 2.0以上)
https://play.google.com/store/apps/details?id=com.schimera.webdavnavlite