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;