WebRequest
là một lớp trừu tượng, có một phương thức gốc Create
, tùy thuộc vào URL được truyền vào, tạo ra một thể hiện của một lớp con cụ thể. Việc bạn cần hay muốn
HttpWebRequest httpreq = (HttpWebRequest)WebRequest.Create(strUrl);
thay vì
WebRequest req = WebRequest.Create(strUrl);
tùy thuộc vào nhu cầu của bạn và loại URL bạn chuyển vào.
Nếu bạn chỉ chuyển vào HTTP: URL, thì mã trước đây cho phép bạn truy cập các thuộc tính và phương thức mà lớp con HttpWebRequest
triển khai ngoài những thuộc tính được xác định trên lớp cơ sở WebRequest
. Nhưng nếu bạn đã chuyển qua FTP: URL thì nỗ lực truyền tới HttpWebRequest
sẽ không thành công.
Cái sau là chung chung và sẽ không bị lỗi đối với bất kỳ loại URL nào được hỗ trợ nhưng tất nhiên nếu không truyền tới bất kỳ lớp con nào, bạn chỉ có thể truy cập các thuộc tính và phương thức mà lớp cơ sở xác định.
- qua Martin Honnen