Страницы: 1
Доброго времени суток всем! Подскажите, пожалуйста, как в SDK Mozilla 4.0 подменить user agent на какой-нибудь свой, например "Вася Пупкин" или что-то в этом духе?.. Суть в том, что есть самописный http-сервер и самописный браузер на основе xulrunner_sdk_2.0, который пуляет запросы на этот сервер. Вот нужно, чтобы при отправке запроса в качестве user-agent стояло не Mozilla bla-bla-bla, а то, что нужно мне... Я отдалённо слышал, что нужно реализовать какой-то листенер... Может кто-нибудь поподробнее рассказать, а лучше ссылочками помочь?.. )))
Отсутствует
Нужно поменять настройки браузера. На 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;
Отредактировано arhberk (23-04-2011 00:09:49)
Отсутствует
Вот нужно, чтобы при отправке запроса в качестве user-agent стояло не Mozilla bla-bla-bla, а то, что нужно мне...
Выставляйте у запроса соответствующие заголовки.
Отсутствует
Нужно поменять настройки браузера. На 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;
Огромный респект и уважуха за направление! На 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; }
но суть в том, что работает! Ещё раз спасибо! Ловите плюсик! )
Отредактировано Helloween (26-04-2011 11:52:28)
Отсутствует
Страницы: 1