(論壇答疑點滴)如果向某網址Post信息,并得到CookieContainer以便以后直接通過驗證
2024-07-21 02:15:59
供稿:網友
 
,歡迎訪問網頁設計愛好者web開發。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);      
            //再次顯示"登錄"  
            //如果把*行注釋調,就顯示"沒有登錄"  
        }