отключить сохранение / диалог в веб-браузере и автоматизировать загрузку - PullRequest
0 голосов
/ 22 декабря 2011

Я хочу автоматизировать загрузку exe-файла по ссылке со стороны клиента.Я могу получить первую перенаправленную ссылку от http://go.microsoft.com/fwlink/?LinkID=149156 до http://www.microsoft.com/getsilverlight/handlers/getsilverlight.ashx. Пожалуйста, нажмите и проверьте, как это работает.fwlink -> .ashx -> .exe ... я хочу получить прямую ссылку на .exe.Но ответ возвращает 404 при запросе веб-обработчика через код, но если вы попробуете в браузере, он действительно загружается.Кто-нибудь может подсказать, как автоматизировать загрузку по вышеуказанной ссылке?Вот код, который я использую для перенаправления ссылки:

public static string GetLink(string url)
{
    HttpWebRequest httpWebRequest = WebRequest.Create(url) as HttpWebRequest;
    httpWebRequest.Method = "HEAD";
    httpWebRequest.AllowAutoRedirect = false;
   // httpWebRequest.ContentType = "application/octet-stream";
   //httpWebRequest.Headers.Add("content-disposition", "attachment; filename=Silverlight.exe");
    HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;
    if (httpWebResponse.StatusCode == HttpStatusCode.Redirect)
    {
        return httpWebResponse.GetResponseHeader("Location");               
    }
    else
    {
        return null;
    }
}

1 Ответ

2 голосов
/ 22 декабря 2011

Только что проверил это, и он загрузит файл.

WebClient client = new WebClient();

client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");

client.DownloadFile(url, "Filename.exe");

Вам просто нужно было добавить пользовательский агент, так как конкретная загрузка Silverlight зависит от того, в каком браузере вы работаете, поэтому, если он не сможет его обнаружить, то он потерпит неудачу.

Измените user-agent на то, что будет запускать соответствующую загрузку, которую вы хотите.

...