Java 对服务器的第三次调用无法从登录中找到Cookie(使用Codenameone)
我的应用程序登录到一个服务器,该服务器为后续连接的身份验证设置一些cookie。在下一个连接中,服务器以另一种形式看到cookies。当应用程序转到第三个表单时,服务器看不到初始登录cookies。我对服务器的三个连接使用相同的连接代码Java 对服务器的第三次调用无法从登录中找到Cookie(使用Codenameone),java,cookies,codenameone,Java,Cookies,Codenameone,我的应用程序登录到一个服务器,该服务器为后续连接的身份验证设置一些cookie。在下一个连接中,服务器以另一种形式看到cookies。当应用程序转到第三个表单时,服务器看不到初始登录cookies。我对服务器的三个连接使用相同的连接代码 Picker establishmentPicker = new Picker(); establishmentPicker.setType(Display.PICKER_TYPE_STRINGS); // Con
Picker establishmentPicker = new Picker();
establishmentPicker.setType(Display.PICKER_TYPE_STRINGS);
//
ConnectionRequest r = new ConnectionRequest() {
//BufferedReader br;
@Override
protected void postResponse() {
//findDest(c)
}
};
r.setUrl("https://barq-160619.appspot.com/estabappJ");
r.setPost(true);
r.setCookiesEnabled(true);
r.setUseNativeCookieStore(true);
Cookie.setAutoStored(true);
Cookie.isAutoStored();
System.out.println("Getting Establishments");
InfiniteProgress prog = new InfiniteProgress();
Dialog dlg = prog.showInifiniteBlocking();
r.setDisposeOnCompletion(dlg);
NetworkManager.getInstance().addToQueueAndWait(r);
JSONParser p = new JSONParser();
String[] places = new String[5];
Hashtable h;
Hashtable t;
Hashtable h2;
Object o;
// Map<String, String> data = p.parseJSON(r);
try {
// Map<String, Object> h = p.parse(new InputStreamReader(new ByteArrayInputStream(r.getResponseData()), "UTF-8"));
h = p.parse(new InputStreamReader(new ByteArrayInputStream(r.getResponseData()), "UTF-8"));
} catch (IOException ex) {
h = null;
System.out.println("Establishment list = null");
}
选取器建立选取器=新选取器();
设置选择器.setType(显示选择器类型字符串);
//
ConnectionRequest r=新的ConnectionRequest(){
//缓冲剂;
@凌驾
受保护的void postResponse(){
//FindTest(c)
}
};
r、 setUrl(“https://barq-160619.appspot.com/estabappJ");
r、 setPost(真);
r、 setCookiesEnabled(真);
r、 setUseNativeCookieStore(真);
Cookie.setAutoStored(true);
Cookie.isAutoStored();
System.out.println(“获取机构”);
InfiniteProgress prog=新的InfiniteProgress();
Dialog dlg=prog.showinItemBlock();
r、 设定完成时间(dlg);
NetworkManager.getInstance().addToQueueAndWait(r);
JSONParser p=新的JSONParser();
字符串[]位置=新字符串[5];
哈希表h;
哈希表t;
哈希表h2;
对象o;
//Map data=p.parseJSON(r);
试试{
//Map h=p.parse(新的InputStreamReader(新的ByteArrayInputStream(r.getResponseData()),“UTF-8”);
h=p.parse(新的InputStreamReader(新的ByteArrayInputStream(r.getResponseData()),“UTF-8”);
}捕获(IOEX异常){
h=零;
System.out.println(“建立列表=null”);
}
有没有一种方法可以保存cookies?我是否需要在cookies的初始设置上设置过期时间?还是我在应用程序端遗漏了什么?我认为您正在经历本机cookie存储和Java端cookie存储在某种程度上发生冲突。我已经提出了一些解决办法的建议,但据我所知,Nick没有就此提出任何问题,而且在没有最终解决方案的情况下,它就消失了
如果您可以隔离一个测试用例,请。现在,为了解决这个问题,我在与服务器的第二次连接上重置了cookie,并且在第三次连接请求时它们就在那里。