zoukankan      html  css  js  c++  java
  • 【转】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.     }  
  • 相关阅读:
    可编辑多行列表框
    NullableComboBox
    灵活的组合框和编辑控件
    EmrColorComboBox
    Java 中基本类型和字符串之间的转换
    Java 中基本类型和字符串之间的转换
    数据结构实验之排序七:选课名单
    数据结构实验之排序七:选课名单
    数据结构实验之排序四:寻找大富翁
    数据结构实验之排序四:寻找大富翁
  • 原文地址:https://www.cnblogs.com/SALIN/p/3269983.html
Copyright © 2011-2022 走看看