【问题标题】:C# Program stops after a HTTP RequestC# 程序在 HTTP 请求后停止
【发布时间】:2012-06-19 09:09:08
【问题描述】:

我的代码可以很好地获取内容长度,并告诉我文件有多大,然后它适用于 if 语句。只是由于某些原因在 if 语句之后,如果 MB 小于 5,则不会下载文件,它只是一般停止程序。就像在 HTTP 请求之后,它就停止了。所以我不知道这是我的代码错误,还是其他原因,如果这是一个愚蠢的问题,我很抱歉。

            byte[] test;
            int size;
            long MB = 0;
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Path);
            req.Method = "HEAD";
            HttpWebResponse resp = (HttpWebResponse)(req.GetResponse());
            long len = resp.ContentLength;
            MB = len / 1048576;

            if (MB > 5)
            {
                Console.WriteLine("File to big!");
            }
            else
            {
                var webClient = new WebClient();
                MemoryStream ms = new MemoryStream();
                byte[] imageBytes = webClient.DownloadData(Path);
                test = imageBytes;
                size = test.Length;
            }

【问题讨论】:

  • 停止程序,因为您遇到了正在取消进程的异常?尝试将代码包装在 try catch 中,并在 catch 中使用控制台写入行。

标签: c# webclient httprequest


【解决方案1】:

只是猜测,但在尝试打开另一个连接之前调用 resp.Close(); 可能会有所帮助?

【讨论】:

    【解决方案2】:

    在继续使用WebClient 之前,请在HttpWebResponse 上致电Dispose()

    它应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多