如果向某網(wǎng)址Post信息,并得到CookieContainer以便以后直接通過驗證 - g...
using system;
using system.net;
using system.io;
using system.text;
[stathread]
static void main(string[] args)
{
//
// todo: 在此處添加代碼以啟動應(yīng)用程序
//
string url="http://localhost/csdn2/1.asp";
//
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;
//設(shè)置httpwebrequest的cookiecontainer為剛才建立的那個mycookiecontainer
stream myrequeststream=myhttpwebrequest.getrequeststream();
streamwriter mystreamwriter=new streamwriter(myrequeststream,encoding.getencoding("gb2312"));
mystreamwriter.write(indata);
//把數(shù)據(jù)寫入httpwebrequest的request流
mystreamwriter.close();
myrequeststream.close();
//關(guān)閉打開對象
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();
//把數(shù)據(jù)從httpwebresponse的response流中讀出
mystreamreader.close();
myresponsestream.close();
console.writeline(outdata);
//顯示"登錄"
//拿到了cookie,再進行請求就能直接讀取到登錄后的內(nèi)容了
myhttpwebrequest=(httpwebrequest)webrequest.create(url);
myhttpwebrequest.cookiecontainer=mycookiecontainer;//*
//剛才那個cookiecontainer已經(jīng)存有了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);
//再次顯示"登錄"
//如果把*行注釋調(diào),就顯示"沒有登錄"
}
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。