不使用WebClient C#下载zip文件

时间:2019-01-10 12:12:41

标签: c# web-scraping

要下载zip文件而不使用Web客户端,因为出现错误“远程服务器返回错误:(403)禁止。”。将适当的标头传递给请求后。

需要使用webclient和httpwebrequest的替代方法。

谢谢!

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Method = "GET";
HttpWebResponse WebResponse = (HttpWebResponse)request.GetResponse();

using (HttpClient client = new HttpClient())
            {
                try
                {
                    HttpResponseMessage response = await client.GetAsync(URL);

                    response.EnsureSuccessStatusCode();

                    string responseBody = await response.Content.ReadAsStringAsync();
                    // Above three lines can be replaced with new helper method below
                    // string responseBody = await client.GetStringAsync(uri);

                    Console.WriteLine(responseBody);
                }
                catch (HttpRequestException e)
                {
                    Console.WriteLine("\nException Caught!");
                    Console.WriteLine("Message :{0} ", e.Message);
                }
            }

1 个答案:

答案 0 :(得分:0)

您可以使用{。{1}},它已随ASP.NET Web API版本引入,并且也包含在.NET Core中。

https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=netframework-4.7.2

您的服务器似乎需要身份验证才能下载ZIP文件-您可以使用HttpClient进行下载,具体取决于服务器所需的身份验证类型。