• C#中SESSIONID的获取


    网站为了区分不同的用户,会在每次访问这个站点时给此会话一个ID,我们称之为SESSIONID,而这个ID在每个IE会话中是可以直接看到的,但在模拟登录中就很难获取到。我就在这个问题上卡了很长时间的壳,现在将此问题的解决方案写出来,以供后人参考。:-)

         其实说来得到这个SESSIONID的原理非常简单,就是在每次的HTTPWEBRESPONSE中CATCH到这个WEBEXCEPTION,从而在这个WEBEXCEPTION中得到那个网站返回的COOKIE值,一般来讲,此值为“Set-Cookie”,我们可以从此值中得到本次会话的SESSIONID,从而在以后的模拟登录时,将此SESSIONID作为Authorization子项发送给需要模拟登录的网页,从而实现自动登录!

    现将我实现的这个得到SESSIONID的小函数贴出来::-)


            ******* String getrequestauthorization(String str)
            {
                String url = "www.11zhuce.com";                  //需要模拟登录的网页地址,可由VS05在网页登录时探测出来

                HttpWebRequest myrequest;
                try
                {
                    myrequest = (HttpWebRequest)WebRequest.Create(url);
                }
                catch (WebException we)
                {
                    MessageBox.Show(we.Message);
                    return "";
                }

                String session="";
                HttpWebResponse myresponse;
                try
                {
                    myresponse = (HttpWebResponse)myrequest.GetResponse();
                }
                catch (WebException ex)                      //下面非常关键!!!此处得到sessionid!!!
                {
                    WebResponse res = ex.Response;
                    session = res.Headers["Set-Cookie"];
                    session = session.Substring(0, session.IndexOf(";"));
                }
                return session;
            }

  • 相关阅读:
    No module named '_sqlite3'
    去西交大考PAT认证
    PAT——乙级1006:换个格式输出整数&乙级1021:个位数统计&乙级1031:查验身份证
    Python——数据类型之set
    python——pyinstaller生成exe基本使用和遇到的坑
    PAT——乙级1022:D进制的A+B &乙级1037:在霍格沃茨找零钱
    PAT——乙级1036:跟奥巴马一起编程 &乙级1027:打印沙漏 (有坑)
    Python——数据类型之dict
    为DEV C++/CodeBlock配置gdb调试遇到的问题
    PAT——甲级1012:The Best Rank(有坑)
  • 原文地址:https://www.cnblogs.com/hackpig/p/1668425.html
Copyright © 2020-2023  润新知