日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

转:WebClient类(温习一下)

發布時間:2025/4/5 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转:WebClient类(温习一下) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WebClient類提供向 URI 標識的資源發送數據和從 URI 標識的資源接收數據的公共方法。 其實就相當于創建一個請求客戶端。可以獲取網頁和各種各樣的信息,包括交互。

通過MSDN來看看WebClient類提供的功能。

一、屬性

1、BaseAddress 獲取或設置 WebClient 發出請求的基 URI。
2、CachePolicy 對于此 WebClient 實例使用 WebRequest 對象獲得的任何資源,獲取或設置應用程序的緩存策略。
3、CanRaiseEvents 獲取一個指示組件是否可以引發事件的值。 (繼承自 Component。)
4、Container 獲取 IContainer,它包含 Component。 (繼承自 Component。)
5、Credentials 獲取或設置發送到主機并用于對請求進行身份驗證的網絡憑據。
6、DesignMode 獲取一個值,用以指示 Component 當前是否處于設計模式。 (繼承自 Component。)
7、Encoding 獲取和設置用于上載和下載字符串的 Encoding。
8、Events 獲取附加到此 Component 的事件處理程序的列表。 (繼承自 Component。)
9、Headers 獲取或設置與請求關聯的標頭名稱/值對集合。
10、IsBusy 了解是否存在進行中的 Web 請求。
11、Proxy 獲取或設置此 WebClient 對象使用的代理。
12、QueryString 獲取或設置與請求關聯的查詢名稱/值對集合。
13、ResponseHeaders 獲取與響應關聯的標頭名稱/值對集合。
14、Site 獲取或設置 Component 的 ISite。 (繼承自 Component。)
15、UseDefaultCredentials 獲取或設置 Boolean 值,該值控制 DefaultCredentials 是否隨請求一起發送。

二、方法

1、CancelAsync 取消一個掛起的異步操作。
2、CreateObjRef 創建一個對象,該對象包含生成用于與遠程對象進行通信的代理所需的全部相關信息。 (繼承自 MarshalByRefObject。)
3、Dispose 已重載。?
4、DownloadData 已重載。 以 Byte 數組形式通過指定的 URI 下載。
5、DownloadDataAsync 已重載。 以 Byte 數組形式下載指定的資源。這些方法不會阻止調用線程。
6、DownloadFile 已重載。 將具有指定 URI 的資源下載到本地文件。
7、DownloadFileAsync 已重載。 將指定的資源下載到本地文件。這些方法不會阻止調用線程。
8、DownloadString 已重載。 以 String 形式下載請求的資源??梢砸园?URI 的 String 或 Uri 的形式指定要下載的資源。
9、DownloadStringAsync 已重載。 下載以 String 或 Uri 形式指定的資源。這些方法不會阻止調用線程。
10、Equals 確定指定的 Object 是否等于當前的 Object。 (繼承自 Object。)
11、Finalize 在通過垃圾回收將 Component 回收之前,釋放非托管資源并執行其他清理操作。 (繼承自 Component。)
12、GetHashCode 用作特定類型的哈希函數。 (繼承自 Object。)
13、GetLifetimeService 檢索控制此實例的生存期策略的當前生存期服務對象。 (繼承自 MarshalByRefObject。)
14、GetService 返回一個對象,該對象表示由 Component 或它的 Container 提供的服務。 (繼承自 Component。)
15、GetType 獲取當前實例的 Type。 (繼承自 Object。)
16、GetWebRequest 為指定資源返回一個 WebRequest 對象。
17、GetWebResponse 已重載。 返回對指定 WebRequest 的 WebResponse。
18、InitializeLifetimeService 獲取控制此實例的生存期策略的生存期服務對象。 (繼承自 MarshalByRefObject。)
19、MemberwiseClone 已重載。
20、OnDownloadDataCompleted 引發 DownloadDataCompleted 事件。
21、OnDownloadFileCompleted 引發 DownloadFileCompleted 事件。
22、OnDownloadProgressChanged 引發 DownloadProgressChanged 事件。
23、OnDownloadStringCompleted 引發 DownloadStringCompleted 事件。
24、OnOpenReadCompleted 引發 OpenReadCompleted 事件。
25、OnOpenWriteCompleted 引發 OpenWriteCompleted 事件。
26、OnUploadDataCompleted 引發 UploadDataCompleted 事件。
27、OnUploadFileCompleted 引發 UploadFileCompleted 事件。
28、OnUploadProgressChanged 引發 UploadProgressChanged 事件。
29、OnUploadStringCompleted 引發 UploadStringCompleted 事件。
30、OnUploadValuesCompleted 引發 UploadValuesCompleted 事件。
31、OpenRead 已重載。 為從具有指定 URI 的資源下載的數據打開一個可讀的流。
32、OpenReadAsync 已重載。 打開包含指定資源的可讀流。這些方法不會阻止調用線程。
33、OpenWrite 已重載。 打開一個流以將數據寫入具有指定 URI 的資源。
34、OpenWriteAsync 已重載。 打開一個流以將數據寫入指定的資源。這些方法不會阻止調用線程。
35、ToString 返回包含 Component 的名稱的 String(如果有)。不應重寫此方法。 (繼承自 Component。)
36、UploadData 已重載。 將數據緩沖區上載到具有指定 URI 的資源。
37、UploadDataAsync 已重載。 將數據緩沖區上載到由 URI 標識的資源。此方法不會阻止調用線程。
38、UploadFile 已重載。 將本地文件上載到具有指定 URI 的資源。
39、UploadFileAsync 已重載。 將指定的本地文件上載到指定的資源。這些方法不會阻止調用線程。
40、UploadString 已重載。 將指定的字符串上載到指定的資源。
41、UploadStringAsync 已重載。 將指定的字符串上載到指定的資源。這些方法不會阻止調用線程。
42、UploadValues 已重載。 將名稱/值集合上載到具有指定 URI 的資源。
43、UploadValuesAsync 已重載。 將指定的名稱/值集合上載到指定的 URI 所標識的資源。這些方法不會阻止調用線程。

三、事件

1、Disposed 當通過調用 Dispose 方法釋放組件時發生。 (繼承自 Component。)
2、DownloadDataCompleted 在異步數據下載操作完成時發生。
3、DownloadFileCompleted 在異步文件下載操作完成時發生。
4、DownloadProgressChanged 在異步下載操作成功轉換部分或全部數據后發生。
5、DownloadStringCompleted 在異步資源下載操作完成時發生。
6、OpenReadCompleted 在以下異步操作完成時發生,該操作打開包含某個資源的流。
7、OpenWriteCompleted 在打開流以將數據寫入資源的異步操作完成時發生。
8、UploadDataCompleted 在異步數據上載操作完成時發生。
9、UploadFileCompleted 在異步文件上載操作完成時發生。
10、UploadProgressChanged 在異步上載操作成功轉換部分或全部數據后發生。
11、UploadStringCompleted 在異步字符串上載操作完成時發生。
12、UploadValuesCompleted 在名稱/值集合的異步上載完成時發生。

?該類在小偷程序以及采集器時經常用到,以下給個比較簡單的例子。

static void Main(string[] args){WebClient wc = new WebClient(); wc.BaseAddress = "http://www.juedui100.com/"; //設置根目錄 wc.Encoding = Encoding.UTF8; //設置按照何種編碼訪問,如果不加此行,獲取到的字符串中文將是亂碼 string str = wc.DownloadString("/"); Console.WriteLine(str); //----------------------以下為OpenRead()以流的方式讀取---------------------- wc.Headers.Add("Accept", "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*"); wc.Headers.Add("Accept-Language", "zh-cn"); wc.Headers.Add("UA-CPU", "x86"); //wc.Headers.Add("Accept-Encoding","gzip, deflate"); //因為我們的程序無法進行gzip解碼所以如果這樣請求獲得的資源可能無法解碼。當然我們可以給程序加入gzip處理的模塊 那是題外話了。 wc.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"); //Headers 用于添加添加請求的頭信息 System.IO.Stream objStream = wc.OpenRead("user/6974068.html"); //獲取訪問流 System.IO.StreamReader _read = new System.IO.StreamReader(objStream, System.Text.Encoding.UTF8); //新建一個讀取流,用指定的編碼讀取,此處是utf-8 Console.Write(_read.ReadToEnd()); //輸出讀取到的字符串 //------------------------DownloadFile下載文件------------------------------- wc.DownloadFile("http://www.baidu.com/img/shouye_b5486898c692066bd2cbaeda86d74448.gif", @"D:\123.gif"); //將遠程文件保存到本地 //------------------------DownloadFile下載到字節數組------------------------------- byte[] bytes = wc.DownloadData("http://www.baidu.com/img/shouye_b5486898c692066bd2cbaeda86d74448.gif"); FileStream fs = new FileStream(@"E:\123.gif", FileMode.Create); fs.Write(bytes, 0, bytes.Length); fs.Flush(); WebHeaderCollection whc = wc.ResponseHeaders; //獲取響應頭信息 foreach (string s in whc) { Console.WriteLine(s + ":" + whc.Get(s)); } Console.WriteLine(wc.QueryString.Count); //輸出0 Console.ReadKey(); }

?  附上一個異步下載頁面的例子:

public class Program{static void Main(string[] args) { WebClient wc = new WebClient(); wc.Encoding = Encoding.UTF8; //設置按照何種編碼訪問,如果不加此行,獲取到的字符串中文將是亂碼 wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownComplete); wc.DownloadStringAsync(new Uri("http://www.juedui100.com/")); Console.WriteLine("下載!"); Console.ReadKey(); } public static void DownComplete(object sender, DownloadStringCompletedEventArgs e) { Console.WriteLine(sender.ToString()); //輸出 System.Net.WebClient 觸發事件的對象 Console.WriteLine(e.Result); //輸出頁面源代碼 } }

?  匿名委托:

public class Program{static void Main(string[] args) { WebClient wc = new WebClient(); wc.Encoding = Encoding.UTF8; //設置按照何種編碼訪問,如果不加此行,獲取到的字符串中文將是亂碼 wc.DownloadStringCompleted += (sender, e) => { Console.WriteLine(sender.ToString()); //輸出 System.Net.WebClient 觸發事件的對象 Console.WriteLine(e.Result); //輸出頁面源代碼 }; wc.DownloadStringAsync(new Uri("http://www.baidu.com/")); Console.WriteLine("下載完成"); Console.ReadKey(); } }

?  WebClient下載文件DEMO:

public class Program{static void Main(string[] args) { WebClient wc = new WebClient(); //直接下載 wc.DownloadFile("http://24.duote.com.cn/kugou.zip", @"D:\ku.zip"); Console.WriteLine("下載完成了嗎?"); //下載完成后輸出 下載完成了嗎? //異步下載 wc.DownloadFileAsync(new Uri("http://24.duote.com.cn/kugou.zip"), @"D:\kugou.zip"); wc.DownloadFileCompleted += DownCompletedEventHandler; Console.WriteLine("現在完成了還是沒完成呢?"); //匿名委托 wc.DownloadFileAsync(new Uri("http://24.duote.com.cn/kugou.zip"), @"D:\kugou.zip"); wc.DownloadFileCompleted += (sender, e) => { Console.WriteLine("下載完成!"); Console.WriteLine(e.UserState); Console.WriteLine(e.Cancelled); }; Console.WriteLine("現在完成了還是沒完成呢?"); Console.ReadKey(); } public static void DownCompletedEventHandler(object sender, AsyncCompletedEventArgs e) { Console.WriteLine("下載完成!"); Console.WriteLine(e.UserState); Console.WriteLine(e.Cancelled); } }

  第二,第三個方法顯示如下:

  

?  將數據下載到字節數組:

static void Main(string[] args){WebClient wc = new WebClient(); //直接下載 wc.DownloadFile("http://24.duote.com.cn/kugou.zip", @"D:\ku.zip"); Console.WriteLine("下載完成了嗎?"); //下載完成后輸出 下載完成了嗎? //將數據下載到字節數組 byte[] byteArr = wc.DownloadData("http://24.duote.com.cn/kugou.zip"); FileStream fs = new FileStream(@"D:\kugo.zip",FileMode.OpenOrCreate,FileAccess.ReadWrite); fs.Write(byteArr,0,byteArr.Length); //至于異步與下載雷同 Console.WriteLine("現在完成了還是沒完成呢?"); Console.ReadKey(); }

  WebClient的OpenRead()方法,下載成一個Stream

public class Program{static void Main(string[] args) { WebClient wc = new WebClient();
       //直接下載成Stream //Stream stream = wc.OpenRead("http://www.baidu.com/"); //StreamReader sr = new StreamReader(stream); //Console.WriteLine(sr.ReadToEnd()); wc.OpenReadAsync(new Uri("http://www.baidu.com")); wc.OpenReadCompleted += (sender, e) => { Console.WriteLine("下載完成!"); Console.WriteLine(e.UserState); StreamReader sr = new StreamReader(e.Result); Console.WriteLine(sr.ReadToEnd()); }; Console.ReadKey(); } public static void ReadCompleted(object sender, OpenReadCompletedEventArgs e) { Console.WriteLine("下載完成!"); Console.WriteLine(e.UserState); StreamReader sr = new StreamReader(e.Result); Console.WriteLine(sr.ReadToEnd()); } }

WebClient不能處理特定于任何協議的任何特性,例如Cookie等。如果需要使用這些特性,需要使用.net中的HttpWebRequest類。

地址:http://www.cnblogs.com/kissdodog/archive/2013/02/19/2917004.html

轉載于:https://www.cnblogs.com/skyapplezhao/p/5249641.html

總結

以上是生活随笔為你收集整理的转:WebClient类(温习一下)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本一区不卡视频 | 午夜电影网站 | 成人久久 | 亚洲第一精品在线观看 | 岛国在线视频 | 欧美国产日韩精品 | 午夜电影网站 | 日韩国产欧美 | 日韩少妇视频 | 久久精品天天中文字幕人妻 | 亚州av片 | 黄色大片aaa | 精品无码在线视频 | 伊人伊网 | 中文字幕亚洲一区二区三区五十路 | 网友自拍av | 日韩国产一级 | 91涩涩涩| 国产精品成人av性教育 | 粉嫩av一区二区三区免费观看 | 欧洲成人综合 | 91成人免费在线 | 日本五十路 | 中文字幕+乱码+中文字幕一区 | 欧美裸体精品 | 亚洲国产成人精品女人久久久 | 办公室荡乳欲伦交换bd电影 | 久久久久99精品成人片三人毛片 | 狠狠操女人 | 日韩一卡二卡三卡四卡 | 法国伦理少妇愉情 | 国产乱淫精品一区二区三区毛片 | 亚洲综合欧美综合 | 韩国毛片视频 | 欧美第一页在线观看 | 国产在线aaa | 91精品国产乱码在线观看 | 亚洲图片二区 | 91精品国自产在线观看 | 成人综合婷婷国产精品久久 | 大色综合| 免费观看视频在线观看 | 免费看国产一级片 | 黄色高清视频在线观看 | 日韩诱惑| 日韩中文字幕一区二区三区四区 | 99热99精品| 999免费视频 | 日韩人妻无码精品久久久不卡 | 狠狠操导航 | 国产精品卡一 | 国产免费黄色小视频 | 性欧美videos另类艳妇3d | 色婷婷亚洲综合 | 福利电影一区二区三区 | 五月天男人天堂 | 亚洲一区二区小说 | 日韩涩 | 91中文字幕永久在线 | 亚洲av人无码激艳猛片服务器 | 黄色资源在线 | 高清视频在线免费观看 | 午夜爱爱毛片xxxx视频免费看 | 蜜桃又黄又粗又爽av免 | 一区二区福利 | 国产精品一区二区久久毛片 | 久久av在线播放 | 亚洲黑丝在线 | 中文字幕在线观 | 疯狂做爰高潮videossex | 又色又爽又黄无遮挡的免费视频 | 国产一级在线视频 | 国产精品夜夜嗨 | 日韩一级黄色 | 久久久资源网 | av三级 | 草逼视频网| 国产字幕在线观看 | 国产精品久久av无码一区二区 | 激情深爱五月 | 123超碰| 天堂资源地址在线 | 亚洲精选久久久 | 性欧美18—19sex性高清 | 国产一区二区三区欧美 | 伊人免费在线 | 激情综合五月 | 一级成人黄色片 | 日本一区二区三区在线观看视频 | 春色导航 | 亚洲无码国产精品 | 精品黄网| 超碰在线香蕉 | aⅴ天堂网| 色天天 | 成年人午夜网站 | 欧美91看片特黄aaaa | 日韩美在线 | 欧美日韩高清 |