基本上我有一个看起来像这样的网址 http://127.0.0.1/here 单击时自动下载zip文件。 我尝试过使用webclient方法,但似乎无法让它工作并继续出错。我已经尝试让webclient下载该文件夹中的所有文件,但每次都会爆炸,无法正常访问该网址。
我正在尝试让客户端应用程序从Web服务器下载文件。 Webclient.DownloadFile不起作用并返回"未知错误"。我尝试下载目录中的任何文件,而不是具体并下载zip文件。
答案 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);
}
}
}
请注意,定义here的HttpWebRequest.Create(url)
需要传入URI,因此请务必在开始时添加http
或https
。所以你的电话会是SaveUrlToFile("http://127.0.0.1/here", "output.zip")