程序现在已经取得session的值了,奇怪的是session的值全是乱码?请问session的值是不是ASCII格式的?如何转成正常的字符串格式呢?
以下 是取session的代码,请高手指点~void st(string Url)
        {
            string strResult = string.Empty;
            CookieContainer cc = new CookieContainer();
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.CookieContainer = new CookieContainer();
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            cc.Add(response.Cookies);
            Stream streamReceive = response.GetResponseStream();
            Encoding encoding = Encoding.GetEncoding("gb2312");
            StreamReader streamReader = new StreamReader(streamReceive, encoding);
            strResult = streamReader.ReadToEnd();
            string str="";            foreach (Cookie c in response.Cookies)
            { str += "NAME: " + c.Name + "   Value: " + c.Value + "||"; }
            MessageBox.Show(str);

解决方案 »

  1.   

    额。。关于Winform用Session我还没见过。。真的, 你这个想法好,不过我的建议是传给全局类更好点。到时候你直接调用即可。
      

  2.   

    我觉得应该先根据http应答的http头来判断编码
      string characterSet = response.CharacterSet;
                Encoding encode;
                if (characterSet != "")
                {
                    if (characterSet == "ISO-8859-1")
                    {
                        characterSet = "gb2312";
                    }
                    encode = Encoding.GetEncoding(characterSet);
                }
                else
                {
                    encode = Encoding.Default;
                }
      

  3.   

    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();   CookieCollection myCookieCollection = myHttpWebResponse.Cookies;   
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("");
    request.CookieContainer = new CookieContainer();
    HttpWebResponse response = (HttpWebResponse) request.GetResponse();
    response.Cookies = request.CookieContainer.GetCookies(request.RequestUri);
    foreach (Cookie cook in response.Cookies)
    {
    }  CookieContainer myCookieContainer = new CookieContainer();   
    string cookieStr = webBrowser1.Document.Cookie;   
    string[] cookstr = cookieStr.Split( '; ');   
    foreach (string str in cookstr)   
    {   }   
      

  4.   

    win用session?
    新手不太理解。
    求指教
      

  5.   

    吓我一跳,还有人在winform中“取session值”?看了帖子才知道,原来是打印cookie文本啊。cookie中只有一个sessionid编号,而Session集合里边的对象都在网站的内存中(或者在状态服务器中等等),跟客户端没有关系。
      

  6.   

    SESSION是存放在服务器端的,COOKIE是存放在客户端的。
      

  7.   

    cookie中只有一个sessionid ID,不是Session值,
    如果你想更深入点的话可以看看这个文章http://www.cnblogs.com/sufei/archive/2011/05/22/2053642.html
      

  8.   

    猛一说session,想起b/s里的session...