>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >user agent в Mozilla 4.0 http://forum.mozilla-russia.org/viewtopic.php?id=49399 |
Helloween > 19-04-2011 12:05:50 |
Доброго времени суток всем! Подскажите, пожалуйста, как в SDK Mozilla 4.0 подменить user agent на какой-нибудь свой, например "Вася Пупкин" или что-то в этом духе?.. Суть в том, что есть самописный http-сервер и самописный браузер на основе xulrunner_sdk_2.0, который пуляет запросы на этот сервер. Вот нужно, чтобы при отправке запроса в качестве user-agent стояло не Mozilla bla-bla-bla, а то, что нужно мне... Я отдалённо слышал, что нужно реализовать какой-то листенер... Может кто-нибудь поподробнее рассказать, а лучше ссылочками помочь?.. ))) |
arhberk > 22-04-2011 23:22:11 |
Нужно поменять настройки браузера. На Delphi так: Выделить код Код:procedure ChangeUserAgent(UserAgent:string); var PrefService: nsIPrefService; PrefBranch: nsIPrefBranch; const PREFSERVICE_ContractID= '@mozilla.org/preferences-service;1'; begin NS_GetService(PREFSERVICE_ContractID, nsIPrefService,PrefService); PrefService.GetBranch('general.useragent.',PrefBranch); PrefBranch.SetCharPref('override', PChar(UserAgent)); end; |
hydrolizer > 23-04-2011 00:49:27 |
arhberk пишет
Выставляйте у запроса соответствующие заголовки. |
Helloween > 26-04-2011 11:51:24 |
arhberk пишет
Огромный респект и уважуха за направление! На C существенно отличается: Выделить код Код:BOOL CBrowserWnd::ChangeUserAgent(LPCSTR lpszUserAgentName) { nsresult nsResult = NS_OK; nsIServiceManager *p_nsIServiceManager = NULL; nsIPrefService *p_nsIPrefService = NULL; nsIPrefBranch *p_nsIPrefBranch = NULL; do { nsResult = NS_GetServiceManager(&p_nsIServiceManager); if (nsResult != NS_OK) break; nsResult = p_nsIServiceManager->GetService(NS_PREFSERVICE_CID, NS_IPREFSERVICE_IID, (LPVOID *)&p_nsIPrefService); if (nsResult != NS_OK) break; nsResult = p_nsIPrefService->GetBranch("general.useragent.", &p_nsIPrefBranch); if (nsResult != NS_OK) break; nsResult = p_nsIPrefBranch->SetCharPref("override", lpszUserAgentName); } while (0); return nsResult == NS_OK; } но суть в том, что работает! Ещё раз спасибо! Ловите плюсик! ) |
arhberk > 26-04-2011 13:38:10 |
Helloween пишет
Не за что |