• .NET下获取网页源码的几种方法


    /// <summary>
        /// 使用WebClient方法
        /// </summary>
        protected void WebClientButton_Click(object sender, EventArgs e)
        {
            pageUrl = UrlText.Text;
            WebClient wc = new WebClient();
            wc.Credentials = CredentialCache.DefaultCredentials;

            //方法一
            byte[] pageData = wc.DownloadData(pageUrl);
            ContentHtml.Text = Encoding.Default.GetString(pageData);

            /*
            //方法二
            Stream resStream = wc.OpenRead(pageurl);
            StreamReader sr = new StreamReader(resStream, Encoding.Default);
            ContentHtml.Text = sr.ReadToEnd();
            resStream.Close();
            */

            wc.Dispose();
        }

        /// <summary>
        /// 使用WebRequest方法
        /// </summary>
        protected void WebRequestButton_Click(object sender, EventArgs e)
        {
            pageUrl = UrlText.Text;
            WebRequest wrequest = WebRequest.Create(pageUrl);
            WebResponse wresponse = wrequest.GetResponse();
            Stream resStream = wresponse.GetResponseStream();
            StreamReader sr = new StreamReader(resStream, Encoding.Default);
            ContentHtml.Text = sr.ReadToEnd();
            resStream.Close();
            sr.Close();
        }

    public string GetRemoteHtmlCode(string Url)
        {
            string s = null;
            try
            {
                MSXML2.XMLHTTP _xmlhttp = new MSXML2.XMLHTTPClass();
                _xmlhttp.open("GET", Url, false, null, null);
                _xmlhttp.send("");
                if (_xmlhttp.readyState == 4)
                {
                    s = System.Text.Encoding.UTF8.GetString((byte[])_xmlhttp.responseBody);
                }

               
            }
            catch
            {
            }
            return s;
        }

        public string GetRemoteHtmlCodeByGB2312(string Url)
        {
            string s = null;
            try
            {
                MSXML2.XMLHTTP _xmlhttp = new MSXML2.XMLHTTPClass();
                _xmlhttp.open("GET", Url, false, null, null);
                _xmlhttp.send("");
                if (_xmlhttp.readyState == 4)
                {
                    s = System.Text.Encoding.Default.GetString((byte[])_xmlhttp.responseBody);
                }
            }
            catch
            {
            }
            return s;
        }

  • 相关阅读:
    二战后的一些战争启示(弱国无外交)
    为了生存人类必须去探索宇宙
    不同版本Eclipse对JDK版本要求
    string 转 java对象、转map的方式
    原生JS实现全选,反选
    oracle批量update
    HttpURLConnection 当作请求调用接口不带返回参数的工具类
    sun.misc.BASE64Encoder在Eclipse中不能直接使用的原因和解决方案
    javamail 发送邮件demo(文字与附件)
    Linux ping不通百度的解决方法
  • 原文地址:https://www.cnblogs.com/yasin/p/1928978.html
Copyright © 2020-2023  润新知