Можно ли использовать интерфейс NPAPI для загрузки файлов без использования локального кэша? - PullRequest
1 голос
/ 19 мая 2010

Я пишу плагин для браузера, используя NPAPI, и как часть плагина мне нужно скачать файл.Для этого я использую функцию NPN_GetURL из структуры NPNetscapeFuncs , предоставленной моему плагину после его загрузки.

Это прекрасно работает, за исключением случаев, когда файл имеетFirefox, похоже, всегда извлекает файл из локального кэша, а не из предоставленного URL.И это происходит независимо от того, какой режим запроса я задаю в функции NPP_NewStream , которую я определил.

Возможно ли обойти кеш или я оставил другие методы для загрузкифайл?В идеале, он будет загружаться только в том случае, если на сервере существует более новая версия (и в противном случае он будет извлекаться из кеша), но сейчас я бы согласился на постоянную загрузку.

1 Ответ

4 голосов
/ 19 мая 2010

NPN_GetURL () действует так же, как браузер, когда получает URL для его отображения. Поэтому я ожидаю, что он извлечет файл с сервера, если он новее, чем тот, который доступен в кэше.

Проверяли ли вы (например, с помощью инструмента Fiddler , когда вы работаете в Windows), действительно ли браузер связывается с сервером, когда файл уже находится в локальном кэше, и, возможно, получает код состояния 304 ( Не изменено) в ответе?

Если вам нужен больший контроль над GET-запросом, таким как установка или изменение заголовков http, вам следует использовать одну из зависимых от платформы библиотек (WinInet / WinHttp в Windows или libcurl в Linux / OSX).

...