0

それは本当に起こっています。これを確認するためにPHPでテストを行いました。

test.phpファイルを作成し、次のように配置しました。

<?php
    error_log('Downloading...');
    header('Content-type: application/force-download');
    header('Content-Disposition: attachment; filename="test.txt"');
    echo 'test android download';
?>

したがって、Androidモバイルブラウザを介してwww.myurl / test.phpを開くと、error_log.logに「Downloading...」が2回表示されます。

他のモバイルOS(Windows、IOSなど)で同じURLを開くと、error_log.logファイルに「ダウンロード中...」が1回だけ表示されます。

誰かが何が起こっているのか、そしてこれを回避する方法を知っていますか?

誰かがファイルをダウンロードするときにユーザー課金を実行するので、これは私にとって大きな問題です。そして今Android携帯から1つのダウンロードされたファイルに対して2つの料金があります。

4

2 に答える 2

1

私は行き止まりです:(

http://code.google.com/p/android/issues/detail?id=1978

ブラウザは、何かがダウンロードであると判断するためにサーバーにアクセスする必要があり、ダウンロードマネージャは、ダウンロードのためにサーバーに個別に接続する必要があります。

そのため、Androidは、「よろしいですか?-はい/いいえ」のダイアログボックスを開く最初のリクエストを起動します。また、ユーザーが[はい]をクリックすると、AndroidDownloadManagerにAndroidForwardリクエストが送信され、マネージャーはファイルをダウンロードするための2番目のリクエストを送信します。(一部のAndroidバージョンはすぐにDownloadManagerにリクエストを送信します)

問題は、最初と2番目の両方の要求がGETのタイプ(HEADではない)であるということです。

于 2013-01-23T10:01:53.587 に答える
0

私の場合、2つのリクエストを受け取ります。最初のものは、説明がjava.net.SocketExceptionであるorg.apache.catalina.connector.ClientAbortExceptionをスローします:ピアによってリセットされた接続:ソケット

だから私はその例外をキャッチしてログを書きます。ダウンロードが成功した後にのみ、同じことをして顧客に請求できると思います

于 2013-03-20T10:20:35.437 に答える