C# http斷點續(xù)傳下載源碼
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
在C#中實現(xiàn)HTTP斷點續(xù)傳通常需要客戶端支持Range請求頭,以便請求下載文件的特定部分。以下是一個簡單的示例,展示了如何使用HttpClient發(fā)送Range請求以實現(xiàn)斷點續(xù)傳: using System; using System.IO; using System.Net.Http; using System.Threading.Tasks;
class Program { static async Task Main(string[] args) { string url = "http://example.com/large-file.zip"; // 替換為你要下載的文件URL string destinationPath = "downloaded-file.zip"; // 替換為你的目標文件路徑
using (HttpClient httpClient = new HttpClient()) { // 獲取文件大小 HttpResponseMessage response = await httpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead); response.EnsureSuccessStatusCode(); long fileLength = response.Content.Headers.ContentLength.Value;
// 打開文件用于追加寫入 using (FileStream fileStream = new FileStream(destinationPath, FileMode.OpenOrCreate, FileAccess.Write)) { // 定位到文件末尾 fileStream.Seek(0, SeekOrigin.End);
// 設(shè)置Range頭部,從文件末尾開始 HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url); request.Headers.Range = new RangeHeaderValue(fileStream.Length, fileLength - 1);
// 發(fā)送Range請求 response = await httpClient.SendAsync(request); response.EnsureSuccessStatusCode();
// 將響應(yīng)內(nèi)容寫入文件 await response.Content.CopyToAsync(fileStream); } } } } 這段代碼首先通過HttpClient獲取文件大小,然后打開目標文件用于追加寫入。之后,它設(shè)置了Range頭部,指定從文件當前長度開始下載,并將下載的內(nèi)容寫入文件。這樣可以實現(xiàn)從上次中斷的地方繼續(xù)下載文件,實現(xiàn)斷點續(xù)傳。 提示:AI自動生成,僅供參考。 該文章在 2024/3/12 23:53:06 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |