首页 > 解决方案 > 使用httpclient下载zip的有效方法

问题描述

我目前正在尝试构建一个应用程序,该应用程序会自动抓取网页以获取更新及其各自的下载链接和下载(如果需要)。目前我正在尝试找出通过 HttpClient 下载 ZIP 文件的最佳方法。我正在访问的网页需要身份验证,因此我使用 httpclient 进行身份验证并创建一个 cookiecontainer 使我能够下载所需的文件,但是,我查看了所有 API 并且无法弄清楚如何下载。我已经尝试了各种方法,但是,还没有一个工作。这就是方法的样子,但我还是没能找到下载 zip 的好方法

        var baseAddress = new Uri(url);
        var cookieContainer = new CookieContainer();
        using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer })
        using (var client = new HttpClient(handler) { BaseAddress = baseAddress })
        {
            client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0");
            client.DefaultRequestHeaders.Add("Connection", "keep-alive");
            client.DefaultRequestHeaders.Add("Accept-Language", "en-US,en;q=0.5");
            client.DefaultRequestHeaders.Add("Accept", "application/json, text/javascript, */*; q=0.01");

            var content = new FormUrlEncodedContent(new[]
            {
                 new KeyValuePair<string, string>("username", username),
                 new KeyValuePair<string, string>("password", password),
                      });

            //Download Files
            string[] download = getDownload().Split('/');
            foreach (string link in download)
            {
                string path = @".\" + link + ".zip";
                string dlink = url + link;
                var uri = new Uri(dlink);

标签: c#

解决方案


推荐阅读