Winform HTTP文件下载错误

时间:2017-12-28 15:46:15

标签: c# winforms httprequest webclient-download

我是C#表单的新手,最近尝试编写一个可以从我朋友的在线硬盘上下载文件的程序。 但我的程序只能正确下载低于1mb的文件大小,超过只能下载15bytes。 我做了一些似乎maxRecievedMessageSize问题的研究,我试图检查我的app.config,这就是我得到的

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>

这是我的下载代码

MyHttpResponse httpDownload(String url)
    {
        string strHtml = string.Empty;
        MyHttpResponse myResponse = new MyHttpResponse();

            WebRequest myWebRequest = WebRequest.Create(url);
            myWebRequest.Timeout = 10000;
            HttpWebRequest myHttpWebRequest = (HttpWebRequest)myWebRequest;
            myHttpWebRequest.Timeout = 10000;
            myHttpWebRequest.Method = "GET";
            myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Windows NT 5.2; Windows NT 6.0; Windows NT 6.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; MS-RTC LM 8; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 4.0C; .NET CLR 4.0E)";

            myHttpWebRequest.CookieContainer = this.cookieContainer;

            WebResponse myWebResponse = myHttpWebRequest.GetResponse();
            Stream myStream = myWebResponse.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myStream, Encoding.Default);

            int index1 = url.LastIndexOf('/');
            int index2 = url.LastIndexOf('?');
            String FileName = url.Substring(index1 + 1, index2 - index1 - 1);

            WebClient myWebClient = new WebClient();
            //myWebClient.DownloadDataCompleted += new AsyncCompletedEventHandler(DownloadProgressCallback);
            //trying to have this function but not sure how to code it right...
            string filepath = textBox3.Text;
            myWebClient.DownloadFileAsync(new Uri(url), filepath + "/" + FileName);
        }

有人说DownloadFileAsync可以&#34;绝对成功下载文件,因此问题是我的代码或我的设置&#34; 还有什么我可以提供更多的信息吗?

我已经看到了c# - maxReceivedMessageSize and maxBufferSize in app.config,但并不是真的明白它在说什么。

顺便说一下,不确定它是否与WCF相关。

1 个答案:

答案 0 :(得分:0)

查看您收到的15k文件的内容。它可能包含重要信息。我希望它是包含错误消息的HTML内容。问题可能出在你朋友那边;不在你的身上。

某些(网络)服务设置了要提供的最大文件大小。