2012-02-21 7 views
12

モバイルデバイスへのPDFダウンロードに関するナッツをやっています。次の狂気は、Android 2.2と2.3で観測されます。私はこの問題をiPhoneや他のデバイスでも、Firefoxや他のデスクトップブラウザでも再現できませんでした。Android 2.2と2.3のHTTPSによるPDFダウンロードが壊れているようです

私はHTTP経由でPDFをダウンロードしていますが、うまくいきます。それから私は、HTTPS経由で同じPDFをダウンロードしていますし、ダウンロードが完了しない(とファイル名が失われている):

Download doesn't finish and filename is lost

は、私は(ここでは無関係であり、他、)これらのHTTPヘッダを使用しています:

Content-Disposition: attachment; filename="abc.pdf" 
Content-Type: application/pdf 

inlineContent-Dispositionを変更するか、それが完全にどちらかの助けにはならない取り除きます。 Content-Typeを削除すると、生のバイナリデータがブラウザウィンドウに表示されます。

注:私はすでにa problem related to untrusted SSL certificatesを発見しましたが、それは唯一の問題ではないようです。だから私は本当に別の説明を探しています。

+0

署名者が信頼されている場合、証明書は信頼されます。証明書の信頼されたルート認可者がデバイスによって信頼されていますか? – ggonsalv

+0

私は答えで証明書が信頼されていないと言いました。しかし、これは重要ではありません。a)ユーザーは信頼できない証明書を明示的に受け入れることができます。b)ダウンロードには影響しません。 –

+0

この問題に関するその他の情報はありますか? HTTPS経由でPDFファイルをダウンロードするときと全く同じ問題が発生しています。アンドロイドダウンロードマネージャ(ネイティブブラウザ、Dolphinブラウザ)を使用するブラウザでのみ表示されます。私は、アプリケーション/オクテットストリームとアプリケーション/ pdfを含む様々な異なるコンテンツタイプを試してきました。 –

答えて

16

いつものように、イライラ開発者のコ​​メントの多くが付いているGoogleのコード上の古代のバグレポートがあるいくつかのハードを見た後...ここでは、この問題に関連する2点の未解決の問題です:

信頼できない証明書(私のテスト環境の場合)を使用してSSLを使用してPDFをダウンロードすると、前述の症状とまったく同じように動作しないようです。

更新:これはです。の問題です。しかし、更新一つだけ

ではないようです。実際のところ、ここでは全体の問題のいくつかの正式な情報は、一度、Content-Dispositionが不十分を実装してを指定されたことを示す、ありますこれは多くの問題HTTP経由でのダウンロードを実装する際に遭遇説明:

http://greenbytes.de/tech/tc2231

0

私はどこにも便利な実行しているHTTPSサーバを持っていないとして、今、この権利をテストすることができませんが、しかし、ヘッダーとContent-Type: application/octet-streamを送るんはどんな違いを生みますか?

明らかに、状況や要件に応じて、これは選択肢ではない可能性があります。それ以外に、有効なSSL証明書を試してみてください!

+0

こんにちは。私が言及したように、SSL証明書の妥当性は唯一の問題ではないようです。そして私はあなたが言及したものを含め、あらゆる種類の 'Content-Type'を試しました –

0

証明書の有効性のほかに、CAチェーンの順序は、Androidダウンロードマネージャーがファイルをダウンロードできるようにするためにも重要です。中間証明書が適切な順序は、次のコマンドを実行することができていることを確認するために

openssl s_client -connect www.google.ch:443 -showcerts | grep ":/[C1]" 

これは以下のようなきれいに命じチェーンを返す必要があります:

0) subject: server 
    issuer: ca1 
1) subject: ca1 
    issuer: ca2 
2) subject: ca2 
    issuer: ca3 

そして、

0) subject: server 
    issuer: ca1 
1) subject: ca2 
    issuer: ca3 
2) subject: ca1 
    issuer: ca2 
関連する問題