zoukankan      html  css  js  c++  java
  • 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;
            }

  • 相关阅读:
    SASS常用方法
    Vue 全局过滤和局部过滤
    Java进阶知识点8:高可扩展架构的利器
    InnoDB MVCC RR隔离级别下的数据可见性总结
    记一次诡异的网络故障排除
    数据库的读锁和写锁在业务上的应用场景总结
    Gradle配置IDEA正常识别JPA Metamodel Generator动态生成的代码
    程序员容易读错的单词
    Java进阶知识点7:不要只会写synchronized
    Java进阶知识点6:并发容器背后的设计理念
  • 原文地址:https://www.cnblogs.com/hackpig/p/1668425.html
Copyright © 2011-2022 走看看