我正在使用NPAPI编写浏览器插件,并且作为插件的一部分,我需要下载文件。为此,我在插件加载后一直使用NPN_GetURL结构中的NPNetscapeFuncs结构。
这样可以正常工作,除非文件已经下载,Firefox似乎总是将文件从本地缓存中拉出而不是从提供的URL中提取。无论我在我定义的NPP_NewStream函数中给出了哪种请求模式,都会发生这种情况。
是否可以绕过缓存,或者我是否使用其他方法下载文件?理想情况下,只有在服务器上存在更新的版本时才会下载(否则将其从缓存中取出),但现在我愿意总是下载。
答案 0 :(得分:4)
当获取用于显示它的URL时,NPN_GetURL()的行为与浏览器的行为相同。 因此,如果它比缓存中可用的文件更新,我希望它从服务器获取文件。
您是否检查过(例如,当您在Windows上时使用Fiddler工具)如果浏览器实际上在文件已经位于本地缓存中时正在联系服务器并且可能获得304状态代码(未修改) )在回应中?
如果您想要更多地控制GET请求,例如设置或更改http标头,那么您必须使用一个平台相关库(Windows上的WinInet / WinHttp或Linux / OSX上的libcurl)。