Открыть URL в новом браузере с новым сеансом и файлами cookie с помощью SWT

Я хочу открыть URL во внешнем браузере с новым сеансом и файлами cookie для URL. каждый раз, когда открывается URL, он должен открываться в новом браузере с новыми файлами cookie. Моя проблема заключается в том, что всякий раз, когда я пытаюсь открыть URL-адрес в новом браузере, старый сеанс истекает, а старое окно браузера перестает быть полезным. Параметры URL будут отличаться каждый раз. Я пытался использовать внутренний браузер, а также внешний браузер SWT. попробовал Browser.setCookies(value,url); все еще не работает.

Для внешнего браузера:

 public void openUrl(String url){ IWebBrowser browser = PlatformUI.getWorkbench() .getBrowserSupport() .createBrowser(IWorkbenchBrowserSupport.AS_EXTERNAL, browserId, name, tooltip); browser.openUrl(url); } 

Для внутреннего браузера:

 public void launchUrl(String url){ Browser browser = (Browser) getBrowserShellNew().getData(BROWSER); // Browser is a static String "BROWSER" browser.setUrl(url); } private Shell getBrowserShellNew(){ Display display=PlatformUI.getWorkbench().getDisplay(); Shell shell = new Shell(display); shell.setText("title"); Rectangle screenBounds = null; if (display.getMonitors().length > 1) { screenBounds = display.getMonitors()[1].getBounds(); } else { screenBounds = display.getMonitors()[0].getBounds(); } shell.setBounds(screenBounds); shell.setLayout(new FillLayout()); shell.setMaximized(true); Browser browser = new Browser(shell, SWT.NONE); browser.setMenu(new Menu(browser)); shell.setData(BROWSER, browser); shell.open(); shell.forceActive(); shell.forceFocus(); return shell; } 

Причина должна быть в том, что все экземпляры браузера используют одни и те же куки из сеанса. Нужно как-то создать новый сеанс с куки для каждого запуска URL. Использование внешнего браузера.

Всего 2 ответа


Я думаю, у вас есть три варианта:

1) Browser.clearSessions()

2) OS.InternetSetOption(0, OS.INTERNET_OPTION_END_BROWSER_SESSION, 0, 0);

3) Удалите содержимое %AppData%RoamingMicrosoftWindowsCookies если вы находитесь на компьютере с Windows или соответствующей папке в другой ОС ...

Удачи...


После некоторого исследования я нашел способ добиться этого, передав параметр в IE при запуске URL. как я уже упоминал в комментариях к ответу. Ниже приведено решение, которое сработало для меня.

Runtime.getRuntime().exec("C:\Program Files\internet explorer\iexplore.exe -noframemerging "http://helloworld.com"");

Примечание: это будет работать только для IE и операционной системы Windows.


Есть идеи?

10000