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;
            }

  • 相关阅读:
    1.0-springboot的java配置方式
    关于springboot启动的问题.
    关于Springboot整合mybatis启动的问题
    关于IDEA无法引入包和类的情况
    关于SpringBoot bean无法注入的问题(与文件包位置有关)改变自动扫描的包
    PostgerSQL 解决锁表
    git 合并冲突后回滚到之前版本
    双重检查锁实现单例
    SpringBoot事务
    SQL性能优化
  • 原文地址:https://www.cnblogs.com/hackpig/p/1668425.html
Copyright © 2011-2022 走看看