当我在 Glassfish 3.1.2 下的 JAX-RS 应用程序中调用 HttpServletRequest getCookies() 方法时,iOS 设备(5 和 6)总是返回 null。
据我所知,我已经在 iOS 设备上启用了 cookie,它们存储在设备上,但它们不会随请求一起发送。Cookie 在桌面浏览器上运行良好。
关于如何使 cookie 过来以使 getCookies 不返回 null 的任何想法?
当我在 Glassfish 3.1.2 下的 JAX-RS 应用程序中调用 HttpServletRequest getCookies() 方法时,iOS 设备(5 和 6)总是返回 null。
据我所知,我已经在 iOS 设备上启用了 cookie,它们存储在设备上,但它们不会随请求一起发送。Cookie 在桌面浏览器上运行良好。
关于如何使 cookie 过来以使 getCookies 不返回 null 的任何想法?
我想通了,原来cookies的路径一开始就缺少/。一些浏览器将其视为无效而拒绝,另一些浏览器接受它但永远不会返回它,还有一些浏览器接受它并返回它。
我终于用下面的代码来追踪它:
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;
public class CheckCookies
{
public static void main(final String[] argv )
throws Exception
{
HttpMethod method;
HttpClient client;
method = new GetMethod(argv[0]);
client = new HttpClient();
client.executeMethod(method);
}
}
这引发了一个异常,告诉我 cookie 无效,因为它XXX
不是/XXX