HttpWebRequest 保持session

通过HttpWebRequest获取网页内容并保持session,最主要的就是存储cookie。这里使用了一个静态变量m_Cookie用来存储cookie的内容。第二次请求网页的时候把cookie传送过去,这样就可以保持session。

 

  1. public partial class RequestPage : System.Web.UI.Page 
  2.     { 
  3.         private static CookieContainer m_Cookie = new CookieContainer(); 
  4.         private string m_Url = "http://localhost/HttpRequestTest/SessionPage.aspx"
  5.         protected void Page_Load(object sender, EventArgs e) 
  6.         { 
  7.             string content = GetPageContent(); 
  8.             //string content = GetPageContent(m_Url); 
  9.             Label1.Text = content; 
  10.         } 
  11.  
  12.         /// <summary> 
  13.         /// 获取页面内容,保存CookieHeader 
  14.         /// </summary> 
  15.         /// <returns></returns> 
  16.         private string GetPageContent() 
  17.         { 
  18.             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(m_Url); 
  19.             request.CookieContainer = m_Cookie; 
  20.             HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
  21.             string cookieheader = request.CookieContainer.GetCookieHeader(new Uri(m_Url)); 
  22.             m_Cookie.SetCookies(new Uri(m_Url), cookieheader); 
  23.  
  24.             Stream stream = response.GetResponseStream(); 
  25.             StreamReader reader = new StreamReader(stream); 
  26.             string result = reader.ReadToEnd(); 
  27.  
  28.             stream.Close(); 
  29.             reader.Close(); 
  30.             response.Close(); 
  31.  
  32.             return result; 
  33.         } 
  34.  
  35.         /// <summary> 
  36.         /// 获取页面内容,存储CookieContainer 
  37.         /// </summary> 
  38.         /// <param name="url">被请求页面的url</param> 
  39.         /// <returns>返回页面内容</returns> 
  40.         public string GetPageContent(string url) 
  41.         { 
  42.             StringBuilder result = new StringBuilder(""); 
  43.             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); ; 
  44.             HttpWebResponse reponse = null
  45.             try 
  46.             { 
  47.                 request.CookieContainer = m_Cookie; 
  48.                 reponse = (HttpWebResponse)request.GetResponse(); 
  49.                 m_Cookie = request.CookieContainer; 
  50.                 Stream rspStream = reponse.GetResponseStream(); 
  51.                 StreamReader sr = new StreamReader(rspStream, System.Text.Encoding.Default); 
  52.  
  53.                 //获取数据 
  54.                 Char[] read = new Char[256]; 
  55.                 int count = sr.Read(read, 0, 256); 
  56.                 while (count > 0) 
  57.                 { 
  58.                     result.Append(read, 0, count); 
  59.                     count = sr.Read(read, 0, 256); 
  60.                 } 
  61.             } 
  62.             catch (Exception e) 
  63.             { 
  64.                 result.Append(e.Message); 
  65.             } 
  66.             finally 
  67.             { 
  68.                 if (reponse != null
  69.                 { 
  70.                     reponse.Close(); 
  71.                 } 
  72.             } 
  73.             return result.ToString(); 
  74.         } 
  75.     } 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值