我只使用核心java。我需要在浏览器示例中打开网页:( http://www.abcxxx.com/xyz/abc ) 通过设置 cookie 来验证用户身份。
我的目标是在浏览器中打开给定的网页而不提供凭据。 (它应该通过传递 cookie 进行身份验证)。
我尝试使用 desktop.browse(new URI(url));
在浏览器中打开网页,但在这里我无法设置 cookie 来验证用户身份。
我只使用核心java。
你能帮忙吗?提前致谢!
最佳答案
遗憾的是,当您在外部 Web 浏览器中打开 URL 时,无法设置 Cookie,因为 Web 浏览器仅从您的程序获取 URL。 对于 Java 来说,打开 Web 浏览器并打开特定的 URL 已经足够复杂了,因为它必须在多个平台上运行并使用数百种不同的 Web 浏览器。 对于特定平台上的某些特定网络浏览器,可能有一种方法可以设置 cookie,但通常您只有 URL。
因此,常见的做法是将认证信息嵌入到URL中,并在服务器端使用该数据进行认证,或者在服务器端将URL参数转换为认证cookie。 这可以通过服务器端的一个小脚本来完成,该脚本读取 URL 数据,在响应中设置 cookie 并重定向到真正的目标页面。
或者,您可以在 Java 应用程序中进行身份验证,直到获得某种 session ID。并使用 session-id 作为 URL 参数。
关于java - java中通过设置cookie进行身份验证在浏览器中打开网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58328268/