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

Download file using c# where the file name is unknown and the path does not have an extension

基本上我有一个 url 看起来像这样 http://127.0.0.1/here 单击时会自动下载一个 zip 文件。 我试过使用 webclient 方法,但似乎无法正常工作并不断出现错误。我试图让 webclient 下载该文件夹中的所有文件,但它每次都崩溃,无法正确访问 url。

我正在尝试让客户端应用程序从网络服务器下载文件。 Webclient.DownloadFile 不起作用,returns "unknown error"。我没有具体下载 zip 文件,而是尝试下载目录中的任何文件。

所以我让它工作了。结果是 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");

通过使用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);
        }
    }
}

请注意,HttpWebRequest.Create(url) 定义为 here 需要传入 URI,因此请确保将 httphttps 放在开头。所以你的电话应该是 SaveUrlToFile("http://127.0.0.1/here", "output.zip")