2015-12-15 4 views
0

При попытке загрузить изображение из конкретного хостера изображения с помощью HttpWebRequest я получаю ошибкуHttpRequest соединение закрыто ошибка

Базовое соединение закрыто: Непредвиденная ошибка посыла.

Пример

образ, который я пытаюсь это: https://static.dyp.im/u1F6o6Q0SW/03b0aef5a48efec8ba3c1b59009e60e4.jpg

Это код, я использую:

HttpWebRequest request = (HttpWebRequest) HttpWebRequest.Create(remoteFilename); 
response = request.GetResponse(); 

Ошибка выкинут на GetResponse() линии.

Загрузка изображения выполняется с использованием браузера. Я также пытался использовать те же заголовки, которые использует браузер (User agent, Accept, Connection и т. Д.), Но ошибка сохраняется.

+0

Мы не можем знать. Скорее всего, защита от скрепок, которая блокирует вас на основе определенных заголовков запросов. Или что-то связанное с HTTPS. Попробуйте выполнить поиск. – CodeCaster

+0

Ваша ошибка возникла из-за проблемы с проверкой подлинности, проверьте http://stackoverflow.com/a/32416630/1095390 –

+0

Я много искал, прежде чем публиковать здесь, ни одно из предложений, которые я нашел, не помогло. Я также попытался установить SecurityProtocol в TLS (также только для SSL), который не работал. – Froghut

ответ

1

Для того, что я видел с помощью скрипача, я думаю, что сеть использует TLSv1.2. Если я не ошибаюсь, для использования tls v1.2 вам понадобится чистая версия 4.5, поэтому вам понадобится хотя бы визуальная студия 2012 года. Попробуйте настроить таргетинг net 4.5 в своем проекте и используйте что-то вроде

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 
ServicePointManager.ServerCertificateValidationCallback = delegate{ 
      return true; 
}; 
Смежные вопросы