• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

(论坛答疑点滴)如果向某网址Post信息,并得到CookieContainer以便以后直接通过验证

发布: 2007-7-01 11:09 | 作者: admin | 来源: | 查看: 26次 | 进入软件测试论坛讨论

领测软件测试网 using System; 
using System.Net; 
using System.IO; 
using System.Text;         [STAThread] 
        static void Main(string[] args) 
        { 
            // 
            // TODO: 在此处添加代码以启动应用程序 
            // 
            string url="http://localhost/csdn2/1.asp"; 
//            <% 
//            if request("aa")="zhuye" then session("ok")="ok" 
//            if session("ok")="ok" then 
//            response.write("登录") 
//            else 
//            response.write("没有登录") 
//            end if 
//            %> 
            string indata="aa=zhuye"; 
            string outdata=""; 
            CookieContainer myCookieContainer=new CookieContainer(); 
            //新建一个CookieContainer来存放Cookie集合 
            HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create(url); 
            //新建一个HttpWebRequest 
            myHttpWebRequest.ContentType="application/x-www-form-urlencoded"; 
            myHttpWebRequest.ContentLength=indata.Length; 
            myHttpWebRequest.Method="POST"; 
            myHttpWebRequest.CookieContainer=myCookieContainer; 
            //设置HttpWebRequest的CookieContainer为刚才建立的那个myCookieContainer 
            Stream myRequestStream=myHttpWebRequest.GetRequestStream(); 
            StreamWriter myStreamWriter=new StreamWriter(myRequestStream,Encoding.GetEncoding("gb2312"));                 
            myStreamWriter.Write(indata); 
            //把数据写入HttpWebRequest的Request流 
            myStreamWriter.Close(); 
            myRequestStream.Close(); 
            //关闭打开对象 
            HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse(); 
            //新建一个HttpWebResponse 
            myHttpWebResponse.Cookies=myCookieContainer.GetCookies(myHttpWebRequest.RequestUri); 
            //获取一个包含url的Cookie集合的CookieCollection 
            Stream myResponseStream=myHttpWebResponse.GetResponseStream(); 
            StreamReader myStreamReader=new StreamReader(myResponseStream,Encoding.GetEncoding("gb2312")); 
            outdata=myStreamReader.ReadToEnd(); 
            //把数据从HttpWebResponse的Response流中读出 
            myStreamReader.Close(); 
            myResponseStream.Close(); 
            Console.WriteLine(outdata); 
            //显示"登录" 
 
            //拿到了Cookie,再进行请求就能直接读取到登录后的内容了 
            myHttpWebRequest=(HttpWebRequest)WebRequest.Create(url); 
            myHttpWebRequest.CookieContainer=myCookieContainer;//* 
            //刚才那个CookieContainer已经存有了Cookie,把它附加到HttpWebRequest中则能直接通过验证 
            myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse(); 
            myHttpWebResponse.Cookies=myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);             
            myResponseStream=myHttpWebResponse.GetResponseStream(); 
            myStreamReader=new StreamReader(myResponseStream,Encoding.GetEncoding("gb2312")); 
            outdata=myStreamReader.ReadToEnd(); 
            myStreamReader.Close(); 
            myResponseStream.Close(); 
            Console.WriteLine(outdata);     
            //再次显示"登录" 
            //如果把*行注释调,就显示"没有登录" 
        } 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网