2017-11-12 4 views
0

Ich versuche, das Favicon für verschiedene Websites herunterladen und speichern. Für die Mehrheit funktioniert der folgende Code. Ich habe jedoch ein Problem mit einigen URLs. zum Beispiel:HttpWebResponse - Die Operation abgelaufen

https://www.bestbuy.com/favicon.icobestbuy, https://www.macys.com/favicon.icomacys

ich diese URLs in meinem Standard-Browser (Firefox) ohne Probleme öffnen kann.

Dies ist der Code, den ich verwende, um die HttpWebRequest zu tun, und wo ich die Ausnahme bekomme. Diese

ist, wie ich die WebRequest

tun
HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest; 
request.Timeout = 10000; 
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; 
request.Headers.Add("Upgrade-Insecure-Requests", "1"); 
request.CookieContainer = new CookieContainer(); 
request.UserAgent = "Application name here"; 
response = request.GetResponse() as HttpWebResponse; 

Irgendwelche Ideen, warum das Beispiel Zeit urls aus (auch hier die meisten Arbeiten in Ordnung). `

+0

Haben Sie nicht versuchen, die Useragent-Eigenschaft überhaupt einstellen? – Clemens

+0

Ja, es scheint alles Hit and Miss zu mir - einige Websites wollen es, andere sind sehr spezifisch ... –

Antwort

0

Sie werden von Ihrem Benutzer blockiert. Senden Sie etwas, das ein Browser senden würde. Früher habe ich dies:

Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36

HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest; 
request.Timeout = 10000; 
request.AutomaticDecompression = DecompressionMethods.GZip | 
DecompressionMethods.Deflate; 
request.Headers.Add("Upgrade-Insecure-Requests", "1"); 
request.CookieContainer = new CookieContainer(); 
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36"; 
response = request.GetResponse() as HttpWebResponse; 
+0

groß - danke! –