如我在A.aspx 怎样获取B.aspx的html的代码。如我们用记事本察看网页,获取的那些代码一样。

解决方案 »

  1.   

     
             string url="http://163.ifcast.ifocus.cn/";
           HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            try
            {
                using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
                {
                    using (StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.Default))
                    {
                        return sr.ReadToEnd();
                    }
                }
            }
            catch (System.Exception e)
            {
                return @"Error";
            }
            finally
            {
                req.Abort();
            }
        }
      

  2.   

    public static string GetHttpSourceValue(string a_strUrl)
    {

    string strResult;
    HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(new System.Uri(a_strUrl));           

                myReq.Method = "GET";
    myReq.Accept = "*/*";
    myReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)";//下载网页源码
    //            System.Threading.Thread.Sleep(1000);
    try
    {
    HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse(); string tmp = myReq.Headers.ToString(); Stream myStream = HttpWResp.GetResponseStream(); StreamReader sr = new StreamReader(myStream, Encoding.Default);
    StringBuilder strBuilder = new StringBuilder();
    while (-1 < sr.Peek())
    {
    strBuilder.Append(sr.ReadLine() + "\r\n");
    } strResult = strBuilder.ToString();
    // StreamWriter sw = new StreamWriter("E:\\1.txt", false, Encoding.Default);
    // sw.Write(strResult);
    myStream.Close();
    sr.Close();
    //                sw.Close();
    }
    catch (Exception exp)
    {
    strResult = "错误:" + exp.Message;
    }


    return strResult;
    // StreamWriter sw = new StreamWriter(SaveFileName(), false, Encoding.Default);
    // sw.Write(body);
    // sw.Close();
    }
      

  3.   

    谢谢各位,有没有在网页中获取的,上面看上去似乎是winform
      

  4.   


     /// <summary>
            /// 获取网页源文件
            /// </summary>
            /// <param name="url">网页地址</param>
            /// <param name="charset">网页编码类型 如:gb2312</param>
            /// <returns>返回网页源文件</returns>
            public static string GetSnatchHtml(string url, string charset)
            {
                string pageHtml = "";
                try
                {
                    HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
                    myHttpWebRequest.Method = "GET";
                    myHttpWebRequest.Timeout = 30000;   //设置超时时间                HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
                    Stream receiveStream = myHttpWebResponse.GetResponseStream();
                    StreamReader readStream = new StreamReader(receiveStream, Encoding.GetEncoding(charset.ToLower()));
                    string returnVal = readStream.ReadToEnd().Trim();
                    readStream.Close();
                    receiveStream.Close();
                    return returnVal;
                }
                catch (Exception ee)
                {
                    string s = url + ":" + ee.Message + ";" + ee.Source + ";" + ee.StackTrace + ";";
                }
                return pageHtml;
            }
      

  5.   

    to:wang520d
    如下面的代码,我调用了你给的函数,但没有输出。
    url: string url="test.aspx"; 是与此网页在同一目录下。 
    ------------------------------------------------------------------
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.IO;
    using System.Text;
    using System.Net;
    public partial class testHtml : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string url="test.aspx"; 
            string charset="unicode";
            string getString = GetSnatchHtml(url, charset);
            Response.Write("GetString is:" + "<br>");
            Response.Write(getString);
        }
        public static string GetSnatchHtml(string url, string charset)
        {
            string pageHtml = "";
            try
            {
                HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
                myHttpWebRequest.Method = "GET";
                myHttpWebRequest.Timeout = 30000;   //设置超时时间            HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
                Stream receiveStream = myHttpWebResponse.GetResponseStream();
                StreamReader readStream = new StreamReader(receiveStream, Encoding.GetEncoding(charset.ToLower()));
                string returnVal = readStream.ReadToEnd().Trim();
                readStream.Close();
                receiveStream.Close();
                return returnVal;
            }
            catch (Exception ee)
            {
                string s = url + ":" + ee.Message + ";" + ee.Source + ";" + ee.StackTrace + ";";
            }
            return pageHtml;
        }} 
       
      

  6.   

    也就是说被调用网页在同一目录下,我不想写成Http这样的url
      

  7.   

    除了用HttpRequest外
    有很多方法,而且是100%可行的
    比如 :
    你可以在A.aspx 页面的pageload事件中加入
    Response.Filter=new xxxxx(Response.Filter);
    xxxxx是一个继承至Stream的类,你可以这这个类中重写Write()方法,A.aspx最后会调用这个Write()方法,你可以在里面得到整个A.aspx 的html,
    这个时候你可以把得到的A.aspx 的html放入Session或Cache或其他的地方,然后在B.aspx中取第2种方法:重写 Render 方法,并执行自己的处理  protected   override   void   Render(HtmlTextWriter   writer) 

    StringWriter   sw   =   new   StringWriter(); 
    HtmlTextWriter   htmlWriter   =   new   HtmlTextWriter(sw); 
    //   html   源码 
    base.Render(htmlWriter); 
        
    string   html   =   sw.ToString();  //得到该页面的html后,进行处理,放入一个B.aspx页面可以访问的地方 }