在URL标头中传递会话Cookie

时间:2012-02-28 00:11:33

标签: android session-cookies android-xml sessionid http-redirect

我已成功登录并收到了Session Cookie。现在我需要在另一个URL的Header中传递此会话cookie以获取更多信息。 URL:http://myexperiment.org.uk/whoami.xml然后应该将自己重定向到另一个生成XML树的URL。我需要使用此XML来获取用户ID信息(这是一个树节点)。

这是我的代码。

    Log.d("Session Cookie: ", cookieValue);

    URL urlWhoAmI = new URL("http://www.myexperiment.org/whoami.xml");

    connection1 = (HttpURLConnection) urlWhoAmI.openConnection();
    connection1.setRequestProperty("Set-Cookie", cookieValue);
    connection1.connect();

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();

    Document doc = db.parse(new InputSource(urlWhoAmI.openStream()));
    doc.getDocumentElement().normalize();

    NodeList nodeList1 = doc.getElementsByTagName("user");

    for(int i=0; i < nodeList1.getLength(); i++)
    {
        Node node = nodeList1.item(i);

        //For user id
        Element firstElement = (Element) node;
        NodeList nameList = firstElement.getElementsByTagName("id");

        Element nameElement = (Element) nameList.item(0);
        nameList = nameElement.getChildNodes();

        String userID = nameList.item(0).getNodeValue();
        Log.d("User ID: ", userID);
    }

当我进行调试时,我得到了url的java.io.FileNotFoundException。

希望有人可以在这里提供帮助。

提前致谢。

1 个答案:

答案 0 :(得分:1)

看起来你正在使用Set-Cookie,当你应该只使用Cookie作为标题字段时。 Set-Cookie用于服务器响应,Cookie用于客户端请求。

http://en.wikipedia.org/wiki/List_of_HTTP_header_fields