using
System;
using System.Net;
using System.IO;
using System.Text;
class Test
{
[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);
// 再次显示"登录"
// 如果把*行注释调,就显示"没有登录"
}
}
using System.Net;
using System.IO;
using System.Text;
class Test
{
[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);
// 再次显示"登录"
// 如果把*行注释调,就显示"没有登录"
}
}
注释写得很明确了,不多罗嗦了。
补充:如果是以get方式登录的话,直接修改url就可以了,indate可以不写任何东西。(不要去修改myHttpWebRequest.Method为GET),比如把asp文件修改为if request.querystring("aa")="zhuye" then session("ok")="ok",只要修改url为string url="http://localhost/csdn2/1.asp?aa=zhuye";即可。