Java 对服务器的第三次调用无法从登录中找到Cookie(使用Codenameone)

Java 对服务器的第三次调用无法从登录中找到Cookie(使用Codenameone),java,cookies,codenameone,Java,Cookies,Codenameone,我的应用程序登录到一个服务器,该服务器为后续连接的身份验证设置一些cookie。在下一个连接中,服务器以另一种形式看到cookies。当应用程序转到第三个表单时,服务器看不到初始登录cookies。我对服务器的三个连接使用相同的连接代码 Picker establishmentPicker = new Picker(); establishmentPicker.setType(Display.PICKER_TYPE_STRINGS); // Con

我的应用程序登录到一个服务器,该服务器为后续连接的身份验证设置一些cookie。在下一个连接中,服务器以另一种形式看到cookies。当应用程序转到第三个表单时,服务器看不到初始登录cookies。我对服务器的三个连接使用相同的连接代码

        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,并且在第三次连接请求时它们就在那里。