Ваш вопрос немного сбивает с толку: если вы используете экземпляр класса Net.WebClient, Net.WebResponse не входит в уравнение (кроме того факта, что это действительно абстрактный класс, и вы ' использовать конкретную реализацию, такую как HttpWebResponse, как указано в другом ответе).
В любом случае, используя WebClient, вы можете достичь желаемого, выполнив что-то вроде этого:
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
Обратите внимание, что вам нужно проверить наличие заголовка Content-Type, поскольку сервер не гарантирует его возврат (хотя большинство современных HTTP-серверов всегда будут включать его). Если заголовок Content-Type отсутствует, вы можете использовать другой метод обнаружения HTML, например, открыть файл, прочитать первые 1К символов или около того в строку и посмотреть, содержит ли она подстроку
Также обратите внимание, что это немного расточительно, так как вы всегда будете передавать полный файл, прежде чем решить, хотите ли вы этого или нет. Чтобы обойти это, переключение на классы Net.HttpWebRequest / Response может помочь, но стоит ли дополнительный код, это зависит от вашего приложения ...