在DefaultHttpClients之间传递cookie时,客户端挂起

时间:2014-08-15 20:19:28

标签: java android cookies client-server

我有一个奇怪的问题,我过去两天一直试图解决,似乎已经缩小到附加到与我的应用程序关联的全局DefaultHttpClient变量的cookie。

当我使用带有post params的客户端时,一切都在第一次使用后挂起。我没有收到任何请求到我的服务器,应用程序只是拒绝做任何事情。如果没有帖子参数,一切都运行正常。这是适用的代码。

httppost.setEntity(new UrlEncodedFormEntity(pairs,"UTF-8"));
DefaultHttpClient defhttpClient = new DefaultHttpClient();
logger.info("URL Encoded");
//When I pass the cookies things stop working...
//defhttpClient.setCookieStore(httpclient.get_cookies());
response = defhttpClient.execute(httppost);
logger.info("Received response");

如果我创建一个新的DefaultHttpClient并使用参数运行post请求,客户端可以很好地与服务器通信。唯一的问题是我需要来自旧客户端的cookie告诉服务器当前用户是谁。当我从旧客户端获取cookie并将其提供给我的新客户端时,应用程序会挂起。再说一次,我甚至都没有看到请求进入我的服务器。

有没有人知道这里发生了什么?

1 个答案:

答案 0 :(得分:0)

好吧,所以我无法通过在身体中发送信息来弄清楚如何做到这一点。刚决定把json数据放在头文件中,一切似乎都运行正常。不是太大的问题。本来希望以正确的方式做到这一点,但有时候你无法得到你想要的一切。以下是具有相同问题的任何人的代码。

JSONObject post_params = new JSONObject();
for(NameValuePair pair : pairs){
    post_params.put(pair.getName(), pair.getValue());
} 
httppost.setHeader("json",post_params.toString());
response = httpclient.get_client().execute(httppost);