java - 使用 SWT 在新浏览器中使用新 session 和 cookie 打开 URL

标签 java browser swt swt-awt

我想在外部浏览器中使用该 URL 的新 session 和 cookie 打开一个 URL。每次打开 URL 时,都将在带有新 cookie 的新浏览器中打开。 我的问题是,每当我尝试在新浏览器中打开 URL 时,旧 session 就会过期,并且旧浏览器窗口不再有用。 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;
}

原因一定是,所有浏览器实例都使用 session 中的相同 cookie。需要以某种方式为每个 URL 启动创建一个带有 cookie 的新 session 。使用外部浏览器。

最佳答案

我认为你有三个选择:

1) Browser.clearSessions()

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

3) 如果您使用的是 Windows 计算机或其他操作系统中的相应文件夹,请删除 %AppData%\Roaming\Microsoft\Windows\Cookies 的内容...

祝你好运...

关于java - 使用 SWT 在新浏览器中使用新 session 和 cookie 打开 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56116942/

相关文章:

java - 突出显示时更改 SWT 树节点文本前景

javascript - 改变背景颜色

css - 如何使 div 的滚动条始终可见?

java - 如何解析此日期格式?

java - ArrayList() 中的 get() 方法行为具有原始类型但没有类型参数

html - 在带有 URL 扩展名的页面中突出显示单词

java - 如何移动标签中的下一行?

java - Eclipse 标准属性 View - PropertyDescriptor - 如何使属性行变灰

java - Swing 组件不可见

java - 如何设置 jasper 报告的相对类路径