大家好,请问asp.net如何获取网站中任一页面的前台http代码?

解决方案 »

  1.   

    ...
    using System.Net;
    ...        public static string GetWebContent(string Url)
            {
                string strResult = "";
                try
                {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                    //声明一个HttpWebRequest请求
                    request.Timeout = 30000;
                    //设置连接超时时间
                    request.Headers.Set("Pragma", "no-cache");
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    Stream streamReceive = response.GetResponseStream();
                    Encoding encoding = Encoding.GetEncoding("GB2312");
                    StreamReader streamReader = new StreamReader(streamReceive, encoding);
                    strResult = streamReader.ReadToEnd();
                }
                catch{}
                return strResult;
            }
      

  2.   

    private   string   getResult(string   url)   
      {   
      HttpWebRequest   HttpWReq   =   (HttpWebRequest)WebRequest.Create(url);   
      HttpWReq.KeepAlive   =   false;   
      HttpWebResponse   HttpWResp   =   (HttpWebResponse)HttpWReq.GetResponse();   
      String   ver   =   HttpWResp.ProtocolVersion.ToString();   
      HttpWResp.Close();   
      return   ver;   
    }也是从论坛上得到的
    报错如下:
    异常详细信息: System.InvalidCastException: 无法将类型为“System.Net.FileWebRequest”的对象强制转换为类型“System.Net.HttpWebRequest”。
    请问该怎么解决?
      

  3.   

    首先添加引用 MSXML2.dll          public static string aa(string url)
            {
                MSXML2.XMLHTTP26 oxmlHttp = new MSXML2.XMLHTTP26();
                oxmlHttp.open("Get",url,false);
                oxmlHttp.send("0");
                //oxmlHttp.readyState = 4;
                if (oxmlHttp.readyState == 4 && oxmlHttp.status == 200)
                {
                    return oxmlHttp.responseText.ToString();
                }
                return "";
            }
      

  4.   


            public static string aa(string url)
            {
                MSXML2.XMLHTTP26 oxmlHttp = new MSXML2.XMLHTTP26();
                oxmlHttp.open("Get",url,false,"user","pwd");
                oxmlHttp.send("0");
                if (oxmlHttp.readyState == 4 && oxmlHttp.status == 200)
                {
                    return oxmlHttp.responseText.ToString();
                }
                return "";
            }
      

  5.   

    找不到类型或命名空间名称“MSXML2”(是否缺少 using 指令或程序集引用?)
    需要引用什么程序集?
      

  6.   

    System.Runtime.InteropServices.COMException: 无效的语法
     这一行 oxmlHttp.send("0"); 报错
      

  7.   

    System.Runtime.InteropServices.COMException: 无效的语法
     这一行 oxmlHttp.send("0"); 报错
      

  8.   

    首先添加引用 MSXML2.dll,然后  using System;
    using System.Web;
    using MSXML2;
    ...
            /// <summary>
            /// 伪造http_referer
            /// </summary>
            /// <param name="url">需要访问的页面路径</param>
            /// <param name="dns">目标网站域名</param>
            /// <returns></returns>
            public static string setReferer(string url, string dns)
            {
                MSXML2.XMLHTTP26 oxmlHttp = new MSXML2.XMLHTTP26();
                oxmlHttp.open("Get",url,false,"user","pwd");
                oxmlHttp.setRequestHeader("Referer", dns);//如果不需要伪造http_referer,把这个去掉号了
                oxmlHttp.send("0");
                if (oxmlHttp.readyState == 4 && oxmlHttp.status == 200)
                {
                    return oxmlHttp.responseText.ToString();
                }
                return "";
            }
    ...