2013-09-05 24 views
0

我有一個NPAPI插件(Windows/Win32)從服務器下載zip文件。 如果客戶端位於代理服務器後面,則不起作用。 如何通過我的NPAPI插件從用戶那裏獲得代理證書? 我使用HttpQueryInfo通過查詢其狀態來檢測代理的存在。如果返回「407」,我使用InternetErrorDlg從用戶獲取憑據,但Chrome(29.0.1547.66 m)在遇到該行時崩潰。 FF(19.0.2)效果很好。從NPAPI插件獲取用戶的代理證書

有沒有更多的方法來做到這一點?提示用戶輸入代理憑證? 在這方面的任何幫助將不勝感激。

非常感謝, LazyCoder7。

+0

你在做什麼下載? NPN_GetURL? – taxilian

+0

我有這個插件的Windows,Mac和Linux版本以及我使用NativeCode的每個平臺。對於Win32,我使用InternetOpenUrl,HttpQueryInfo和InternetReadFileFunctions來下載文件。 – LazyCoder7

回答

1

如果您使用瀏覽器API下載,則代理應該正常工作(tm)。你這樣做的方式,你可以使用NPN_GetValueForURL獲得新瀏覽器的代理信息;除非你需要記住你不允許阻塞主線程,這可能是你正在做的事情導致它崩潰。使用HTML或其他方式獲取憑證,然後將其傳入;只要你使用另一個線程並且很小心,就可以使用windows對話框來完成它,但是在javascript/html中處理它更容易。

+0

謝謝Taxillan,我也在想同樣的事情,只是打一個URl,並檢查代理的存在從Html本身取得憑據並傳遞給插件。 – LazyCoder7

+0

另外我會檢查你提到的部分「不阻止主線程」我會嘗試調用另一個線程的對話框。編碼時我沒有打這個東西。非常感謝這一點。 – LazyCoder7

+0

最後,在開發的初始階段,我使用NPN_GETURL來下載文件。但在那段時間裏,我遇到了一些問題,如從CACHE中檢索文件(如果存在)。這是不可取的。我沒有解決這個問題,還有很多人在那裏我不記得。於是被迫使用Native API可用於各個平臺。 – LazyCoder7