Android Http获取Session Cookie

时间:2010-10-04 19:50:07

标签: android http cookies http-headers httpclient

我真的不想在这里发帖,因为网上有太多的信息,但是我已经深入了解并无法弄明白。

好的,所以我无法在两个场景中使用它,希望两者的答案是一样的。

我的问题是我设置了请求标头,但它似乎没有发送它。

我有一个会话ID s = e32ff223fwefd3,我想将它存储在“Cookie”下,但它似乎没有用。

这是我有最快的代码示例

import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.HttpResponse;

private static String sessionCookie = "s=12342342352354234";

public static void get(String url) {
    HttpClient client = new DefaultHttpClient();
    HttpGet request = new HttpGet(url);
        if(sessionCookie != null){
            Log.d(TAG, "Setting Cookie: "+sessionCookie);
            request.setHeader("Cookie", sessionCookie);
        } else {
            Log.i(TAG, "Null session request get()");
        }
        HttpResponse response = client.execute(request);

        Header[] headers = response.getAllHeaders();
        for (int i=0; i < headers.length; i++) {
            Header h = headers[i];
            Log.i(TAG, "Header names: "+h.getName());
            Log.i(TAG, "Header Value: "+h.getValue());
        }
}

所以当我的反应出来时,另一方没有附上我的s = 232342w3f23f id!

我想我已经解释过这一点,任何帮助都表示赞赏

2 个答案:

答案 0 :(得分:5)

好的,上面的代码确实有效,我只是没有正确检索标题以查看所有字段。问题是我有一个无效的会话ID但我使用的网络服务器有WORST错误处理机制:-)感谢收听!

答案 1 :(得分:4)

在发送请求之前,在getCookieStore().addCookie()对象上尝试DefaultHttpClient