C#利用WebClient和WebRequest獲取網(wǎng)頁(yè)源代碼的示例代碼
WebClient類獲取網(wǎng)頁(yè)源代碼
WebClient類在System.Net命名空間下,WebClient類向URI標(biāo)識(shí)的任何本地、Intranet或Internet資源發(fā)送數(shù)據(jù)以及從這些資源接收數(shù)據(jù)的方法。
using System.IO;
using System.Net;
using System.Text;
PageUrl = "http://www.webkaka.com"; //獲取源代碼的網(wǎng)頁(yè)
WebClient wc = new WebClient(); // 創(chuàng)建WebClient實(shí)例提供向URI
wc.Credentials = CredentialCache.DefaultCredentials; // 獲取或設(shè)置Internet 請(qǐng)求進(jìn)行身份驗(yàn)證的網(wǎng)絡(luò)憑據(jù)。
Encoding enc = Encoding.GetEncoding("GB2312"); // 亂碼就改成 utf-8 或 GB2312
Byte[] pageData = wc.DownloadData(PageUrl);
ContentHtml.Text = enc.GetString(pageData); // 輸出字符串HTML代碼WebRequest類獲取網(wǎng)頁(yè)源代碼
WebRequest類是.NET Framework中“請(qǐng)求/響應(yīng)”模型的abstract基類,用于訪問Internet數(shù)據(jù)。應(yīng)用程序處理WebRequest類的實(shí)例,而協(xié)議特定的子類則執(zhí)行請(qǐng)求的具體細(xì)節(jié),請(qǐng)求從應(yīng)用程序發(fā)送到某個(gè)特定的URI。注冊(cè)WebRequest子類通常是為了處理某個(gè)特定的協(xié)議(如HTTP或FTP),但是也可以注冊(cè)它以處理對(duì)特定服務(wù)器或服務(wù)器上的路徑的請(qǐng)求。
WebRequest類中最常用的是Create方法,為指定的URI方案初始化新的WebRequest實(shí)例。
public static WebRequest Create ( string requestUriString )
注意:Create方法將運(yùn)行時(shí) WebRequest 類的子類作為與requestUri最接近的注冊(cè)匹配項(xiàng)返回。如,以http://的URI在requestUri中傳遞時(shí),由Create返回HttpWebRequest。如果為傳遞以file://開頭的URI,則Create將返回FileWebRequest實(shí)例。.
WebResponse類是abstract基類,特定的響應(yīng)類從該抽象基類派生。而從WebResponse類派生的協(xié)議特定的類攜帶請(qǐng)求的詳細(xì)信息。
public virtual WebResponse GetResponse () 返回值:對(duì)Internet請(qǐng)求的響應(yīng)的WebResponse。
using System.IO;
using System.Net;
using System.Text;
PageUrl = "http://www.webkaka.com"; //獲取源代碼的網(wǎng)頁(yè)
WebRequest request = WebRequest.Create(PageUrl); //返回WebRequest的子類HttpWebRequest
WebResponse response = request.GetResponse(); //返回對(duì) Internet 請(qǐng)求的響應(yīng)
Stream resStream = response.GetResponseStream(); //從 Internet 資源返回?cái)?shù)據(jù)流。?
Encoding enc = Encoding.GetEncoding("GB2312"); // 亂碼就改成 utf-8 / GB2312
StreamReader sr = new StreamReader(resStream, enc); //以一種特定的編碼從字節(jié)流中讀取字符。?
ContentHtml.Text = sr.ReadToEnd(); //輸出HTML代碼
sr.Close();到此這篇關(guān)于C#利用WebClient和WebRequest獲取網(wǎng)頁(yè)源代碼的示例代碼的文章就介紹到這了,更多相關(guān)C#獲取網(wǎng)頁(yè)源代碼的方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c#動(dòng)態(tài)執(zhí)行腳本的3種方式詳解
本文主要介紹了c#動(dòng)態(tài)執(zhí)行腳本的3種方式詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
淺析C#中StringBuilder類的高效及與String的對(duì)比
StringBuilder類所創(chuàng)造出來(lái)的字符串對(duì)象在拼接操作等方面比普通的string類往往要高效很多,這是它們?cè)趦?nèi)存劃分方式上的不同所決定的,下面就來(lái)淺析C#中StringBuilder類的高效及與String的對(duì)比2016-05-05
Unity Sockect實(shí)現(xiàn)畫面實(shí)時(shí)傳輸案例原理解析
Socket是比較常用的一種通信方式,本文通過(guò)案例給大家介紹Unity Sockect實(shí)現(xiàn)畫面實(shí)時(shí)傳輸功能,感興趣的朋友一起看看吧2021-08-08
Unity Shader實(shí)現(xiàn)紋理遮罩效果
這篇文章主要為大家詳細(xì)介紹了Unity Shader實(shí)現(xiàn)紋理遮罩效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
C#實(shí)現(xiàn)拆分合并Word表格中的單元格
我們?cè)谑褂肳ord制作表格時(shí),由于表格較為復(fù)雜,只是簡(jiǎn)單的插入行、列并不能滿足我們的需要。要做一個(gè)完整的表格,很多時(shí)候需要將單元格進(jìn)行拆分或者合并。本文將詳細(xì)為您介紹在Word表格中拆分或合并單元格的思路及方法,希望對(duì)大家有所幫助2022-12-12

