Uri url = new Uri( "http://www.baidu.com ");
WebRequest requestPage = WebRequest.Create(url);//發送absoluteUri創建請求對象
//requestPage.Timeout = 1000;
WebResponse reponsePage = requestPage.GetResponse();
Stream newsStream = reponsePage.GetResponseStream();//讀取頁面流
Encoding encode = System.Text.Encoding.GetEncoding( "gb2312 ");
StreamReader reader = new StreamReader(newsStream, encode);//讀取獲得內容流
string boardStream = reader.ReadToEnd();//將內容流轉換為文本並存入變量BoardStream,即為所需要的數據流
為什么經常讀取到的是下面的頁面?這好像是電信的一個頁面.其中zhsbwensen是我上網的賬號,為什么會這樣呢?我該怎么做?
<html>
<head>
<meta http-equiv= "pragma " content= "no-cache "/>
<meta http-equiv= "Cache-Control " content= "no-store,no-cache,must-revalidate,post-check=0,pre-check=0,max-age=0 "/>
<meta http-equiv= "expires " content= "-1 "/>
<meta http-equiv= "refresh " content= "2 "/>
</head>
<body>
<iframe src= "about:blank " width= "0 " height= "0 " frameborder= "0 " style= "display:none "> </iframe>
<script language= "javascript ">
window.frames[0].location = "http://219.131.193.229/update/step1.aspx?p= " +
"zhsbwensen ¦ " +
Math.floor((new Date()).getTime()/1000) + " ¦ " +
navigator.appMinorVersion + " ¦ " +
screen.availHeight + " ¦ " +
screen.availWidth + " ¦ " +
screen.colorDepth + " ¦ " +
screen.height + " ¦ " +
screen.width;
</script>
</body>
</html>
6 个解决方案
你用個timer 2秒一次2秒一次的刷,看看會不會,應該是電信的問題
樓主用的是adsl?樓主的問題我也遇到過,我在家用的是電信的adsl,獲取網頁源代碼時不時就出現一個討厭的框架,害得我還得自己寫代碼轉向。原因是電信在監視你訪問哪些網站,這太侵犯隱私了!
3樓的,你說對了,我的就是電信的adsl,怎么轉向取得正確地址的內容啊
從樓主發的代碼來看,你訪問的是www.baidu.com,但是返回的並不是百度首頁的源代碼,而是一個包含了Iframe的頁面。分析此html代碼發現,它每隔2秒把你的瀏覽器信息及顯示器信息發送到219.131.193.229,這個ip收集你的信息到底是干什么的呢?如果它是搞統計,那也應該再加個Iframe把百度的主頁顯示出來啊?不然瀏覽器顯示此html將是一片空白,且不說這個。我更關注它是怎么替換成這個html的,訪問網站一般都要先把域名解析成IP,然后再通過三次握手建立tcp連接,這個連接一旦建立就可以互相通信了。看看樓主的情況,你訪問www.baidu.com其實並沒有和百度建立tcp連接,而是和另外一個主機,那可以推測是在域名解析的時候有問題。樓主可以用ipconfig/all命令看看自己的DNS服務器是多少?再多ping www.baidu.com幾次看看是不是每次返回的ip相同?是不是你的DNS不穩定,你換個DNS試試?