【问题标题】:C# webclient download latest CCleanerC# webclient 下载最新的CCleaner
【发布时间】:2018-12-18 13:21:40
【问题描述】:

如何更改我的 C# 下载方法,以便它从给定链接获取最终下载链接,然后将其重定向到该链接。 现在我有兴趣获得 CCleaner 的最后一个便携式版本,可以使用浏览器从 https://www.ccleaner.com/ccleaner/download/portable 获取。

这是我目前的下载方式:

public void downloadFile(String address, String filename)
    {
        WebClient down = new WebClient();
        down.Headers.Add(HttpRequestHeader.UserAgent,"Mozilla/5.0 (compatible; http://example.org/)");
        down.DownloadFileAsync(new Uri(address), filename);
    }

当然,在给定的链接上使用它会导致下载一个似乎是 html 页面本身的文件。 我的项目是并且需要是 net3.5 并且下载必须是异步的。知道我该怎么做吗?

【问题讨论】:

    标签: c# redirect webclient downloadfileasync


    【解决方案1】:

    您应该注意到,它不是重定向。它由 JavaScript 代码触发。该页面包含您需要的网址,但您必须自己提取。这样的事情可能会起作用,但是您应该为正则表达式添加一些检查:

    WebClient down = new WebClient();
    down.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (compatible; http://example.org/)");
    var result = down.DownloadString(new Uri("https://www.ccleaner.com/ccleaner/download/portable"));
    var download = Regex.Match(result, "data-download-url=\"(.*?)\"").Groups[1].Value;
    var uri = new Uri(download);
    
    down.DownloadFileAsync(uri, Path.GetFileName(download));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多