2017-02-20 13 views
1

Независимо от того, пользуюсь ли я WebClient или HttpWebRequest, загружая эту страницу с ошибкой. Что я делаю не так? Это не может быть https, так как другие сайты https загружаются просто отлично.Невозможно загрузить страницу с помощью WebClient или HttpWebRequest

Ниже приводится моя последняя попытка, которая добавляет все заголовки, которые я вижу в инспекторе Firefox.

Одно интересное поведение заключается в том, что я не могу контролировать это с помощью Fiddler, потому что все работает правильно, когда Fiddler работает.

Using client As WebClient = New WebClient() 
     client.Headers(HttpRequestHeader.Accept) = "text/html, image/png, image/jpeg, image/gif, */*;q=0.1" 
     client.Headers(HttpRequestHeader.UserAgent) = "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12" 
     client.Headers(HttpRequestHeader.AcceptLanguage) = "en-US;en;q=0.5" 
     client.Headers(HttpRequestHeader.AcceptEncoding) = "gzip, deflate, br" 
     client.Headers(HttpRequestHeader.Referer) = "http://www.torontohydro.com/sites/electricsystem/Pages/foryourhome.aspx" 
     client.Headers("DNT") = "1" 
     client.Headers(HttpRequestHeader.KeepAlive) = "keep-alive" 
     client.Headers(HttpRequestHeader.Upgrade) = "1" 
     client.Headers(HttpRequestHeader.CacheControl) = "max-age=0" 

     Dim x = New Uri("https://css.torontohydro.com/") 
     Dim data as string = client.DownloadString(x) 
    End Using 

Все это лишний код. Кипячение до нескольких строк приводит к тому, что они зависают.

Using client as WebClient = New WebClient() 
     Dim data as string = client.DownloadString("https://css.torontohydro.com") 
    End Using 

И это HttpWebRequest код, в двух словах, что также нависает получение ответа.

 Dim getRequest As HttpWebRequest = CreateWebRequest("https://css.torontohydro.com/") 
     getRequest.CachePolicy = New Cache.RequestCachePolicy(Cache.RequestCacheLevel.BypassCache) 

     Using webResponse As HttpWebResponse = CType(getRequest.GetResponse(), HttpWebResponse) 
      'no need for any more code, since the above line is where things hang 
+0

Зачем прошу прощения за код VB.Net? – N0Alias

+0

Вы просто хотите страницы html? – Codexer

+0

Извините, я пытался сделать плохую шутку. У меня есть несколько страниц для чтения с сайта, но я даже не могу пройти первый. Кажется, это касается сайта. Я получаю тот же самый тайм-аут, устанавливаю ли я все эти заголовки или просто использую последние 2 строки. Или если я использую 'HttpWebRequest' с методом' GET'. – deanis

ответ

0

Так что это закончилось тем, что проект все еще находится в .NET 3.5. .NET пытался загрузить сайт, будучи https, используя SSL. Добавление этой линии Устранена проблема:

ServicePointManager.SecurityProtocol = 3072 

я должен был использовать 3072 поскольку 3.5 не содержит определения для SecurityProtocolType.Tls12.