Error : "The request was aborted: The connection was closed unexpectedly." while using WebClient.DownloadFIleAsync
Error : "The request was aborted: The connection was closed unexpectedly." while using WebClient.DownloadFIleAsync
我在我的代码中使用 C#,Visual Studio 2015 社区版。
我想从私有 Github 存储库异步下载发布文件,并且已经有了下载 Uri:
https://github.com/<'Github
user'>/<'repo'>/releases/download/1.0.7.4/<'7zip file to download'>
如果我使用上面的 Uri,这个错误总是会出现:
请求中止:连接意外关闭。
奇怪的是,如果我从我的存储库中尝试另一个 Uri,它会成功下载。
This is my another Uri : https://raw.githubusercontent.com/<'Github
user'>/<'repo'>/master/<'7zip file to download'>
这是我的代码
// Set up WebClient to download file
webClient = new WebClient();
webClient.Proxy = WebRequest.DefaultWebProxy;
webClient.Proxy.Credentials = CredentialCache.DefaultCredentials;
//webClient.UseDefaultCredentials = true;
//webClient.Headers.Add(HttpRequestHeader.Authorization, string.Format("token {0}", applicationInfo.TokenAuthorization));
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(webClient_DownloadProgressChanged);
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(webClient_DownloadFileCompleted);
// Download file
try
{ webClient.DownloadFileAsync(updateInfo.Uri, this.temp7zFile); }
catch { this.DialogResult = DialogResult.No; this.Close(); }
我尝试添加(现在它评论)
webClient.UseDefaultCredentials = true;
或
webClient.Headers.Add(HttpRequestHeader.Authorization,
string.Format("token {0}", applicationInfo.TokenAuthorization));
结果始终相同 = 请求被中止:连接意外关闭。
真不知道怎么回事,折腾了3天..
注:
- 这两个 Uri 都是正确的,如果我在 firefox 浏览器中 运行 它,它会自动下载。
- applicationInfo.TokenAuthorization : 是Github授权的令牌。
- updateInfo.Uri : 是Uri地址
- this.temp7zFile : 是目标下载文件
终于找到差距了。错误 Url,必须处理重定向!
基于Github Release,要从私有仓库下载二进制文件或发布文件,请使用资产的Url。
Github 将从 http://github-cloud.s3.amazonaws.com 发送重定向下载 Url,其中包含一些参数。
您只需在 WebClient.DownloadFileAsync 中使用 Url ,无需 header 或授权等,文件将从此愉快地到达您的本地驱动器..
都是因为私有repo
希望对大家有用..
我在我的代码中使用 C#,Visual Studio 2015 社区版。
我想从私有 Github 存储库异步下载发布文件,并且已经有了下载 Uri:
https://github.com/<'Github user'>/<'repo'>/releases/download/1.0.7.4/<'7zip file to download'>
如果我使用上面的 Uri,这个错误总是会出现:
请求中止:连接意外关闭。
奇怪的是,如果我从我的存储库中尝试另一个 Uri,它会成功下载。
This is my another Uri : https://raw.githubusercontent.com/<'Github user'>/<'repo'>/master/<'7zip file to download'>
这是我的代码
// Set up WebClient to download file
webClient = new WebClient();
webClient.Proxy = WebRequest.DefaultWebProxy;
webClient.Proxy.Credentials = CredentialCache.DefaultCredentials;
//webClient.UseDefaultCredentials = true;
//webClient.Headers.Add(HttpRequestHeader.Authorization, string.Format("token {0}", applicationInfo.TokenAuthorization));
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(webClient_DownloadProgressChanged);
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(webClient_DownloadFileCompleted);
// Download file
try
{ webClient.DownloadFileAsync(updateInfo.Uri, this.temp7zFile); }
catch { this.DialogResult = DialogResult.No; this.Close(); }
我尝试添加(现在它评论)
webClient.UseDefaultCredentials = true;
或
webClient.Headers.Add(HttpRequestHeader.Authorization, string.Format("token {0}", applicationInfo.TokenAuthorization));
结果始终相同 = 请求被中止:连接意外关闭。
真不知道怎么回事,折腾了3天..
注:
- 这两个 Uri 都是正确的,如果我在 firefox 浏览器中 运行 它,它会自动下载。
- applicationInfo.TokenAuthorization : 是Github授权的令牌。
- updateInfo.Uri : 是Uri地址
- this.temp7zFile : 是目标下载文件
终于找到差距了。错误 Url,必须处理重定向!
基于Github Release,要从私有仓库下载二进制文件或发布文件,请使用资产的Url。
Github 将从 http://github-cloud.s3.amazonaws.com 发送重定向下载 Url,其中包含一些参数。
您只需在 WebClient.DownloadFileAsync 中使用 Url ,无需 header 或授权等,文件将从此愉快地到达您的本地驱动器..
都是因为私有repo
希望对大家有用..