Java - 我可以使用浏览器 cookie 直接访问网站上的数据吗?
Java - can I use browser cookies to directly access data on a website?
我可以使用 firefox 浏览器访问网站。使用 cookie 我不必每次都登录。
如果这不是一个聪明的问题,请解释 - 这样我就知道如何继续了:
问题:使用浏览器登录后,我可以启动一个Java应用程序并重新使用浏览器中的cookie直接访问网站上的数据吗?那么,和浏览器一样,跳过登录过程?
为什么 - 就我而言,使用浏览器登录很容易。从 Java 应用程序登录很困难。
希望大家帮忙OR解释一下。
是,使用CookieManager
and CookieStore
. Also check CookiePolicy
CookieManager cookiemanager = new CookieManager();
cookiemanager.setCookiepolicy(CookiePolicy.ACCEPT_ALL);
// maybe you need ACCEPT_ORIGINAL_SERVER
然后用CookieStore
获取cookie
CookieStore cookieStore = cookieManager.getCookieStore();
List cookieList = cookieStore.getCookies();
// here you have your cookies list
for (HttpCookie cookie : cookieList) {
}
你可以在 firefox 上安装一个 firebug 插件,然后按 F12 运行 它,转到网络选项卡,激活它,登录到你的页面,你会看到请求的样子.在简单的场景中,您需要的只是一个 cookie,服务器将通过它对您进行身份验证。很可能你还需要设置 user.agent 属性(没有它某些服务不允许访问),例如。
java.net.URLConnection c = url.openConnection();
c.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
System.setProperty("http.agent", "");
要确定确切的用户代理,启动一个 http 服务器端口,从浏览器连接到它并打印传入的流。
您还可以查看 cookie 的存储方式。
尝试在您的 java 代码中模仿浏览器的行为。
一些站点使用其他身份验证机制,但相对较少。
- 我们知道cookie是由服务器生成然后发送给用户的。
- 如果客户端浏览器允许 cookie,cookie 将存储在客户端计算机上。
- 所以,当然你可以在cookie中存储一些登录信息,并在requset header中添加cookie,然后服务器获取cookie并知道你已经登录了。
我可以使用 firefox 浏览器访问网站。使用 cookie 我不必每次都登录。
如果这不是一个聪明的问题,请解释 - 这样我就知道如何继续了:
问题:使用浏览器登录后,我可以启动一个Java应用程序并重新使用浏览器中的cookie直接访问网站上的数据吗?那么,和浏览器一样,跳过登录过程?
为什么 - 就我而言,使用浏览器登录很容易。从 Java 应用程序登录很困难。
希望大家帮忙OR解释一下。
是,使用CookieManager
and CookieStore
. Also check CookiePolicy
CookieManager cookiemanager = new CookieManager();
cookiemanager.setCookiepolicy(CookiePolicy.ACCEPT_ALL);
// maybe you need ACCEPT_ORIGINAL_SERVER
然后用CookieStore
CookieStore cookieStore = cookieManager.getCookieStore();
List cookieList = cookieStore.getCookies();
// here you have your cookies list
for (HttpCookie cookie : cookieList) {
}
你可以在 firefox 上安装一个 firebug 插件,然后按 F12 运行 它,转到网络选项卡,激活它,登录到你的页面,你会看到请求的样子.在简单的场景中,您需要的只是一个 cookie,服务器将通过它对您进行身份验证。很可能你还需要设置 user.agent 属性(没有它某些服务不允许访问),例如。
java.net.URLConnection c = url.openConnection();
c.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
System.setProperty("http.agent", "");
要确定确切的用户代理,启动一个 http 服务器端口,从浏览器连接到它并打印传入的流。
您还可以查看 cookie 的存储方式。 尝试在您的 java 代码中模仿浏览器的行为。
一些站点使用其他身份验证机制,但相对较少。
- 我们知道cookie是由服务器生成然后发送给用户的。
- 如果客户端浏览器允许 cookie,cookie 将存储在客户端计算机上。
- 所以,当然你可以在cookie中存储一些登录信息,并在requset header中添加cookie,然后服务器获取cookie并知道你已经登录了。