真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C#如何實現(xiàn)HTTP文件傳輸

這篇文章主要講解了“C#如何實現(xiàn)HTTP文件傳輸”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C#如何實現(xiàn)HTTP文件傳輸”吧!

公司主營業(yè)務(wù):網(wǎng)站建設(shè)、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出東至免費做網(wǎng)站回饋大家。

C# HTTP文件傳輸是什么呢?其實很多人都有過使用網(wǎng)絡(luò)螞蟻或網(wǎng)絡(luò)快車軟件下載互聯(lián)網(wǎng)文件的經(jīng)歷,這些軟件的使用可以大大加速互聯(lián)網(wǎng)上文件的傳輸速度,減少文件傳輸?shù)臅r間。這些軟件為什么有如此大的魔力呢?其主要原因是這些軟件都采用了多線程下載和斷點續(xù)傳技術(shù)。如果我們自己來編寫一個類似這樣的程序,也能夠快速的在互聯(lián)網(wǎng)上下載文件,那一定是非常愉快的事情。下面我就講一講如何實現(xiàn)C# HTTP文件傳輸?shù)某绦?,你會看到利用C#語言編寫網(wǎng)絡(luò)應(yīng)程序是多么的容易,從中也能體會到C#語言中強大的網(wǎng)絡(luò)功能。

C# HTTP文件傳輸我們要明白什么是HTTP協(xié)議

HTTP亦即Hpyer Text Transfer Protocal的縮寫,它是現(xiàn)代互聯(lián)網(wǎng)上最重要的一種網(wǎng)絡(luò)協(xié)議,超文本傳輸協(xié)議位于TCP/IP協(xié)議的應(yīng)用層,是一個面向無連接、簡單、快速的C/S結(jié)構(gòu)的協(xié)議。HTTP的工作過程大體上分連接、請求、響應(yīng)和斷開連接四個步驟。C#語言對HTTP協(xié)議提供了良好的支持,在.NET類庫中提供了WebRequest和WebResponse類,這兩個類都包含在System.Net命名空間中,利用這兩個類可以實現(xiàn)很多高級的網(wǎng)絡(luò)功能,本文中多線程文件下載就是利用這兩個類實現(xiàn)的。 WebRequest和WebResponse都是抽象基類,因此在程序中不能直接作為對象使用,必須被繼承,實際使用中,可根據(jù)URI參數(shù)中的URI前綴選用它們合適的子類,對于HTTP這類URI,HttpWebRequest和HttpWebResponse類可以用于處理客戶程序同WEB服務(wù)器之間的HTTP通訊。

C# HTTP文件傳輸中HttpWebRequest類

它實現(xiàn)了很多通過HTTP訪問WEB服務(wù)器上文件的高級功能。HttpWebRequest類對WebRequest中定義的屬性和方法提供支持,HttpWebRequest將發(fā)送到Internet資源的公共HTTP標頭的值公開為屬性,由方法或系統(tǒng)設(shè)置,常用的由屬性或方法設(shè)置的HTTP標頭為:接受, 由Accept屬性設(shè)置, 連接, 由Connection屬性和KeepAlive屬性設(shè)置, Content-Length, 由ContentLength屬性設(shè)置, Content-Type, 由ContentType屬性設(shè)置, 范圍, 由AddRange方法設(shè)置. 實際使用中是將標頭信息正確設(shè)置后,傳遞到WEB服務(wù)器,WEB服務(wù)器根據(jù)要求作出回應(yīng)。

C# HTTP文件傳輸之HttpWebResponse類

它繼承自WebResponse類,專門處理從WEB服務(wù)器返回的HTTP響應(yīng),這個類實現(xiàn)了很多方法,具有很多屬性,可以全面處理接收到的互聯(lián)網(wǎng)信息。在HttpWebResponse類中,對于大多數(shù)通用的HTTP標頭字段,都有獨立的屬性與其對應(yīng),程序員可以通過這些屬性方便的訪問位于HTTP接收報文標頭字段中的信息,本例中用到的HttpWebResponse類屬性為:ContentLength 既接收內(nèi)容的長度。

有了以上的了解后,下面看看這兩個類的用法,要創(chuàng)建HttpWebRequest對象,不要直接使用HttpWebRequest的構(gòu)造函數(shù),而要使用WebRequest.Create方法初始化一個HttpWebRequest實例,如:

HttpWebRequest hwr=(HttpWebRequest)WebRequest.Create(http://www.163.com/);

創(chuàng)建了這個對象后,就可以通過HttpWebRequest屬性,設(shè)置很多HTTP標頭字段的內(nèi)容,如hwr.AddRange(100,1000);設(shè)置接收對象的范圍為100-1000字節(jié)。

HttpWebReques對象使用GetResponse()方法時,會返回一個HttpWebResponse對象,為提出HTTP返回報文信息,需要使用HttpWebResponse的GetResponseStream()方法,該方法返回一個Stream對象,可以讀取HTTP返回的報文,如:首先定義一個Strean 對象 public System.IO.Stream ns; 然后 ns=hwr.GetResponse ().GetResponseStream ();即可創(chuàng)建Stream對象。有了以上的準備知識后下面開始設(shè)計我們的多線程互聯(lián)網(wǎng)文件的下載程序,首先打開Visual Studio.Net集成開發(fā)環(huán)境,選擇“文件”、“新建”、“項目”,然后選擇“Visual C#項目”,在向?qū)в疫吜斜砜蛑羞x中“Windows應(yīng)用程序”,輸入項目名稱,如本例為:httpftp,然后選擇“確定”按鈕,向?qū)ё詣由闪艘粋€Windows應(yīng)用程序項目。首先打開窗口設(shè)計器設(shè)計應(yīng)用程序窗口,增加如下控件:

一個列表框 listBox1 三個文本標簽 label1-label3 三個文本框 textBox1-textBox3 一個開始接收按鈕 button1 設(shè)計好的窗口如下圖:

C#如何實現(xiàn)HTTP文件傳輸

C# HTTP文件傳輸之控件定義代碼是:

public System.Windows.Forms.ListBox listBox1;  private System.Windows.Forms.Label label1;  private System.Windows.Forms.TextBox textBox1  private System.Windows.Forms.Button button1;  private System.Windows.Forms.Label label2;  private System.Windows.Forms.TextBox textBox2;  private System.Windows.Forms.Label label3;  private System.Windows.Forms.TextBox textBox3;  private System.Windows.Forms.Label label4;  private System.Windows.Forms.TextBox textBox4;

打開Form1的代碼編輯器,增加如下的命名空間:

using System.Net;//網(wǎng)絡(luò)功能   using System.IO;//流支持  using System.Threading ;//線程支持

增加如下的程序變量:

public bool[] threadw; //每個線程結(jié)束標志  public string[] filenamew;//每個線程接收文件的文件名  public int[] filestartw;//每個線程接收文件的起始位置  public int[] filesizew;//每個線程接收文件的大小  public string strurl;//接受文件的URL  public bool hb;//文件合并標志  public int thread;//進程數(shù)

感謝各位的閱讀,以上就是“C#如何實現(xiàn)HTTP文件傳輸”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對C#如何實現(xiàn)HTTP文件傳輸這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!


分享題目:C#如何實現(xiàn)HTTP文件傳輸
分享網(wǎng)址:http://weahome.cn/article/jsspos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部