[英]How to get http response header in npapi plugin
我是插件開發的新手。 有人告訴我使用Firebreath開發npapi插件,事實證明這很容易。 現在,我希望訪問傳遞給插件的響應的http響應標頭。 但是我不知道有什么辦法,因為他們缺少可用於噴火的文檔。 在NPAPI教程中,他們使用npstream,但我不知道如何在firebreath中使用此結構。 任何幫助將不勝感激。
更新:
void tPlugin::handleUnsolicitedStream(FB::BrowserStreamRequest& req)
{
const FB::PluginEventSinkPtr sinkPtr;
req.setEventSink(sinkPtr);
responseHeaders = req.headers;
FB::HeaderMap::const_iterator it = responseHeaders.begin();
str = (*it).first + " : " + (*it).second; // str is a class variable
FB::DOM::WindowPtr window = m_host->getDOMWindow();
window->alert(str);
str = "hello";
window->alert(fname);
}
沒有任何警報框出現!
void tPlugin::onPluginReady()
{
FB::DOM::WindowPtr window = m_host->getDOMWindow();
window->alert(str);
}
出現一個空的警報框!
如果您閱讀正在使用的BrowserStreamRequest對象的源代碼 ,或者如果閱讀了創建源的代碼甚至更好,那么您會發現該對象上存在標頭變量。
FB::HeaderMap headers;
FB :: HeaderMap當然是在SimpleStreamHelper.h中定義的:
typedef std::multimap<std::string, std::string> HeaderMap;
而且要澄清的是,有很多有關FireBreath的文檔。 這項特殊功能只用了一個月左右就沒什么了。
編輯:從過去的對話中,我很確定您已經在處理此問題,但是瀏覽器創建的流是通過將BrowserStreamRequest對象傳遞給您的,該對象傳遞到插件對象的handleUnsolicitedStream方法中; 默認情況下,插件不會在fbgen模板中覆蓋此方法,但是您可以添加它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.