高手superior

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

用 MSXML2.ServerXMLHTTP 一定行,其他几个好像不怎么行。

另外一篇文章 采集MSXML2.XMLHTTP“拒绝访问”的解决方案

        /// <summary>
        /// 获取远程文件源代码
        /// </summary>
        /// <param name="url">远程url</param>
        /// <returns></returns>
        public string GetHtmlCode(string Url)
        {
            string s = "";
            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);
            }
            return s;
        }

  上面这段代码不行,下面一段代码可以:

 1 private string GetHtmlCode(string Url)
 2         {
 3             string strResult = "";
 4 
 5             try
 6             {
 7                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
 8                 request.Method = "GET";
 9                 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
10                 Stream streamReceive = response.GetResponseStream();
11                 Encoding encoding = Encoding.GetEncoding("GB2312");
12                 StreamReader streamReader = new StreamReader(streamReceive, encoding);
13                 strResult = streamReader.ReadToEnd();
14             }
15             catch { }
16 
17             return strResult;
18         }

posted on 2013-10-21 15:08  高手superior  阅读(1161)  评论(0)    收藏  举报