我正在使用java构建一些服务,并且我在重定向方面遇到了一些问题。
我在domainA中有登录表单。登录后,我想在其他域 domainB 中设置cookie。
现在,当我在一段时间后打开 domainA 时,我想检查 domainB 中是否有Cookie sen,但我不想重定向用户 domainA 到 domainB 。
是否有可能将JAVA中的请求从 domainA 发送到 domainB 以检查是否有Cookie?
我正在尝试:
try {
URL url = new URL(rURL + "checkCookie" );
InputStream response2 = url.openStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(response2, "UTF-8"));
for(String line; (line = reader.readLine()) != null;){
responsePool += line;
}
}catch(Exception e2){
e2.printStackTrace();
}
logger.info(responsePool);
并且在 domainB 中获取Cookie的代码只是:
try {
Cookie[] cookies = request.getCookies();
for (int i = 0; i < cookies.length; i++) {
Cookie c = cookies[i];
if (c.getName().equals("xvz")) {
cookieSCS = c.getValue();
}
}
if(cookieSCS == null || cookieSCS == ""){
cookieSCS = "there is no cookie";
}
} catch (Exception e) {
cookieSCS = e.toString();
}
但是我得到java.lang.NullPointerException
并且我明白这种方法不会给我一个cookie,但是有没有可能从 domainB 获取cookie而无需在 domainB中打开浏览器?
答案 0 :(得分:0)
我认为您不能以这种方式阅读跨域Cookie。通常,通过在domainA和domainB的父级上设置cookie来处理这种情况(如果你有类似的东西)。
因此,如果父级是www.example.com
并且您有两个网域math.example.com
和sci.example.com
,则应该在.example.com
域上设置Cookie。
开头的.
(点)是必需的,以便将Cookie视为所有子域的通配符。