POST信息模拟登录获取页面内容_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > POST信息模拟登录获取页面内容

POST信息模拟登录获取页面内容

 2014/7/17 19:12:45  沈熹  程序员俱乐部  我要评论(0)
  • 摘要:最近项目里有一个是要模拟登录后,访问固定页面获取内容的要求,一开始用JQAJAX好像不支持跨域请求。后使用.net中HttpWebRequest对象来获取。一开始访问总是无法在第二个页面正常访问,好像没通过登录验证,用postman模拟提交正常,后查询出原是忘记在第二次请求没把cookies关联上,关联上后请求正常。stringwurl="";stringusername="haxinet";stringuserpwd="haxinet"
  • 标签:内容

最近项目里有一个是要模拟登录后,访问固定页面获取内容的要求,一开始用JQ AJAX好像不支持跨域请求。后使用.net中HttpWebRequest对象来获取。一开始访问总是无法在第二个页面正常访问,好像没通过登录验证,用postman模拟提交正常,后查询出原是忘记在第二次请求没把cookies关联上,关联上后请求正常。

class="brush:csharp;gutter:true;">            string wurl="";           
            string username="haxinet";
            string userpwd="haxinet";
            CookieContainer cookies = new CookieContainer();
            Encoding encode = System.Text.Encoding.UTF8;
            byte[] arrB = encode.GetBytes("user_name=" + username + "&user_passwd=" + userpwd + "&keepuser=1");        
            System.Net.HttpWebRequest myReq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(wurl);
            myReq.Method = "POST";
            myReq.ContentType = "application/x-www-form-urlencoded";
            myReq.ContentLength = arrB.Length;
            myReq.CookieContainer = cookies;
            Stream outStream = myReq.GetRequestStream();
            outStream.Write(arrB, 0, arrB.Length);
            outStream.Close();
            System.Net.WebResponse myResp = null;
            try
            {
                myResp = myReq.GetResponse();
            }
            catch (Exception e)
            {
              
            }
            Stream ReceiveStream = myResp.GetResponseStream();
            StreamReader readStream = new StreamReader(ReceiveStream, encode);
            Char[] read = new Char[256];
            int count = readStream.Read(read, 0, 256);
            string str = null;
            while (count > 0)
            {
                str += new String(read, 0, count);
                count = readStream.Read(read, 0, 256);
            }
            readStream.Close();
            myResp.Close();

            string wuurl = "";
            HttpWebRequest myReq2 = (HttpWebRequest)HttpWebRequest.Create(wuurl);
            myReq2.Method = "GET";
            myReq2.CookieContainer = cookies;
            using (WebResponse wr = myReq2.GetResponse())
            {
                StreamReader reader = new StreamReader(wr.GetResponseStream(), Encoding.UTF8);

                string result = reader.ReadToEnd();
                retStr = result;
            }    

  

上一篇: 微软要长盛不衰必须做出的三大重要转变 下一篇: 没有下一篇了!
发表评论
用户名: 匿名