使用c#下载文件,其中文件名未知且路径没有扩展名

时间:2017-06-23 11:07:30

标签: c# url web download webclient

基本上我有一个看起来像这样的网址 http://127.0.0.1/here 单击时自动下载zip文件。 我尝试过使用webclient方法,但似乎无法让它工作并继续出错。我已经尝试让webclient下载该文件夹中的所有文件,但每次都会爆炸,无法正常访问该网址。

我正在尝试让客户端应用程序从Web服务器下载文件。 Webclient.DownloadFile不起作用并返回"未知错误"。我尝试下载目录中的任何文件,而不是具体并下载zip文件。

2 个答案:

答案 0 :(得分:1)

所以我开始工作了。事实证明,webclient正在投掷401,但我没有正确处理错误检查,所以我没有接受它。 添加“usedefaultcredentials”解决了我的问题。

        string url = "http://127.0.0.1/here";
        WebClient client = new WebClient();
        client.UseDefaultCredentials = true;
        client.DownloadFile(new Uri(url), @"C:\temp\test.zip");

答案 1 :(得分:1)

通过使用GetResponseStream,您可以直接将下载的响应写入文件。

public static void SaveUrlToFile(string uri, string filePath)
{
    var fileReq =  HttpWebRequest.Create(uri) as HttpWebRequest;

    //Create a response for this request
    var fileResp = (HttpWebResponse) fileReq.GetResponse();

    //Get the Stream returned from the response
    using (var stream = fileResp.GetResponseStream())
    {
        using (var fileStream = File.OpenWrite(filePath))
        {
            stream.CopyTo(fileStream);
        }
    }
}

请注意,定义hereHttpWebRequest.Create(url)需要传入URI,因此请务必在开始时添加httphttps。所以你的电话会是SaveUrlToFile("http://127.0.0.1/here", "output.zip")