簡體   English   中英

如何在npapi插件中獲取http響應標頭

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM