CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 438

438
Chương 11: Lập trình mạng

Console.WriteLine("Downloading file " +

remoteUri + " to " + Path.GetFullPath(localFileName));

// Thực hiện download.

client.DownloadFile(remoteUri, localFileName);

Console.WriteLine("Download complete.");

Console.ReadLine();

}

}

2.

2.

Download và x lý file b ng stream

Download và x lý file b ng stream

Bạn cần lấy một file từ một website, nhưng không muốn lưu trực tiếp vào đĩa.
Thay vào đó, bạn muốn xử lý ngay trong ứng dụng của mình.

Sử dụng lớp

WebRequest

để tạo yêu cầu, lớp

WebResponse

để nhận đáp ứng từ web-

server, và một số dạng reader (

StreamReader

đối với dữ liệu HTML hay text, hoặc

BinaryReader

đối với dữ liệu nhị phân) để phân tích đáp ứng đó.

Download một file cần bốn bước cơ bản sau:

1. Sử dụng phương thức tĩnh

Create

của lớp

System.Net.WebRequest

để chỉ định trang

bạn cần. Phương thức này trả về một đối tượng dẫn xuất từ

WebRequest

, phụ thuộc vào

kiểu Uniform Resource Identifier (URI) bạn sử dụng. Ví dụ, nếu tài nguyên là HTTP
(với cụm từ

http://

), nó sẽ tạo ra đối tượng

HttpWebRequest

; nếu tài nguyên là file (với

cụm từ

file://

), nó sẽ tạo ra đối tượng

FileWebRequest

. Bạn có thể thiết lập thời gian trễ

thông qua thuộc tính

WebRequest.Timeout

.

2. Sử dụng phương thức

GetResponse

của đối tượng

WebRequest

, phương thức này trả về

một đối tượng

WebResponse

cho trang. Nếu yêu cầu vượt qua thời gian trễ thì ngoại lệ

WebException

sẽ bị ném.

3. Tạo một

StreamReader

hoặc một

BinaryReader

cho

WebResponse

.

4. Công việc cuối cùng là xử lý stream này, chẳng hạn ghi nó ra file rồi hiển thị trong ứng

dụng của bạn...

Đoạn mã dưới đây sẽ lấy và hiển thị một file ảnh và nội dung HTML của một trang web.

using System;

using System.Net;

using System.IO;

using System.Drawing;

using System.Windows.Forms;

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.