簡體   English   中英

使用SWT在新瀏覽器中使用新會話和cookie打開URL

[英]Open URL in new browser with new session and cookies using 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;
}

原因必須是,所有瀏覽器實例都使用來自會話的相同cookie。 需要以某種方式為每個URL啟動創建一個包含cookie的新會話。 使用外部瀏覽器。

我認為你有三個選擇:

1) Browser.clearSessions()

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

3)如果您在Windows計算機上或其他操作系統中的相應文件夾中,請刪除%AppData%\\Roaming\\Microsoft\\Windows\\Cookies的內容...

祝好運...

經過一些調查后,我發現了通過在啟動URL時將參數傳遞給IE來實現此目的的方法。 正如我在評論中已經提到的那樣。 以下是適合我的解決方案。

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

注意:這僅適用於IE和Windows操作系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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