1

NPAPI を使用してブラウザー プラグインを作成していますが、プラグインの一部としてファイルをダウンロードする必要があります。このために、ロード後にプラグインに提供されるNPNetscapeFuncs構造体からNPN_GetURL関数を使用しています。

これは問題なく動作しますが、ファイルが既にダウンロードされている場合、Firefox は提供された URL からではなく、常にローカル キャッシュからファイルをプルするように見えます。これは、定義したNPP_NewStream関数で指定した要求モードに関係なく発生します。

キャッシュをバイパスすることは可能ですか、それとも他の方法でファイルをダウンロードすることはできますか? 理想的には、新しいバージョンがサーバーに存在する場合にのみダウンロードします (そうでない場合はキャッシュから削除します) が、現時点では常にダウンロードすることに決めています。

4

1 に答える 1

4

NPN_GetURL() は、それを表示するための URL を取得するときに、ブラウザーと同じように動作します。したがって、キャッシュで利用可能なものよりも新しい場合は、サーバーからファイルを取得することが期待されます。

ファイルが既にローカル キャッシュにあり、おそらく応答で 304 ステータス コード (Not Modified) を取得しているときに、ブラウザが実際にサーバーに接続しているかどうか (Windows の場合はFiddlerツールを使用するなど) を確認しましたか?

http ヘッダーの設定や変更など、GET 要求をさらに制御したい場合は、プラットフォームに依存するライブラリ (Windows では WinInet/WinHttp、Linux/OSX では libcurl) のいずれかを使用する必要があります。

于 2010-05-19T09:24:53.017 に答える