Câu hỏi của bạn hơi khó hiểu: nếu bạn đang sử dụng một thể hiện của lớp Net.WebClient, Net.WebResponse không nhập vào phương trình (ngoài thực tế là nó thực sự là lớp trừu tượng và bạn đang sử dụng triển khai cụ thể như HttpWebResponse, như được chỉ ra trong một phản hồi khác).
Dù sao, khi sử dụng WebClient, bạn có thể đạt được những gì bạn muốn bằng cách làm một cái gì đó như thế này:
Dim wc As New Net.WebClient()
Dim LocalFile As String = IO.Path.Combine(Environment.GetEnvironmentVariable("TEMP"), Guid.NewGuid.ToString)
wc.DownloadFile("http://example.com/somefile", LocalFile)
If Not wc.ResponseHeaders("Content-Type") Is Nothing AndAlso wc.ResponseHeaders("Content-Type") <> "text/html" Then
IO.File.Delete(LocalFile)
Else
'//Process the file
End If
Lưu ý rằng bạn phải kiểm tra sự tồn tại của header Content-Type, như máy chủ là không được bảo đảm trả lại (mặc dù hầu hết các máy chủ HTTP hiện đại sẽ luôn bao gồm nó). Nếu không có tiêu đề Loại nội dung, bạn có thể quay lại phương thức phát hiện HTML khác, ví dụ: mở tệp, đọc các ký tự 1K đầu tiên hoặc thành chuỗi và xem chuỗi có chứa chuỗi con <html>
Cũng lưu ý rằng đây là một chút lãng phí, vì bạn sẽ luôn luôn chuyển toàn bộ tập tin, trước khi quyết định xem bạn có muốn hay không. Để giải quyết vấn đề đó, việc chuyển sang lớp Net.HttpWebRequest/Response có thể giúp ích, nhưng liệu mã phụ có đáng giá hay không tùy thuộc vào ứng dụng của bạn ...
bạn muốn hình ảnh, tờ định kiểu và JavaScript? –