1

我正在使用 NPAPI 编写一个浏览器插件,作为插件的一部分,我需要下载一个文件。为此,我一直在使用插件加载后提供给插件的NPNetscapeFuncs结构中的NPN_GetURL函数。

这很好用,除非文件已经下载,Firefox 似乎总是将文件从本地缓存中拉出,而不是从提供的 URL 中拉出。无论我在我定义的NPP_NewStream函数中给它什么请求模式,都会发生这种情况。

是否可以绕过缓存或者我是否使用其他方法下载文件?理想情况下,只有在服务器上存在较新版本时才会下载(否则将其从缓存中取出),但现在我会满足于始终下载。

4

1 回答 1

4

NPN_GetURL() 在获取 URL 以显示它时,其行为方式与浏览器相同。因此,如果它比缓存中可用的文件更新,我希望它从服务器获取文件。

当文件已经在本地缓存中并且可能在响应中获得 304 状态代码(未修改)时,您是否检查过(例如,当您在 Windows 上时使用Fiddler工具)浏览器是否真的在联系服务器?

如果您想对 GET 请求进行更多控制,例如设置或更改 http 标头,那么您必须使用依赖于平台的库之一(Windows 上的 WinInet/WinHttp 或 Linux/OSX 上的 libcurl)。

于 2010-05-19T09:24:53.017 回答