使用 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,因此请确保将 http
或 https
放在开头。所以你的电话应该是 SaveUrlToFile("http://127.0.0.1/here", "output.zip")
基本上我有一个 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,因此请确保将 http
或 https
放在开头。所以你的电话应该是 SaveUrlToFile("http://127.0.0.1/here", "output.zip")