HTTPResponse挂在多个请求上

国王

我有以下代码从HTTPServer下载一组文件。它给出了前几个文件的响应,后来卡在了响应中。我可以从我创建的日志文件中验证这一点。在日志文件中,它为第三个文件写“ webresponse之前”,但从未到达“ webresponse之后”。我已经在利用webresponse了。这里可能会发生什么?

            Logger.WriteToLog("url = " +url);
            // Create a request to the file we are downloading
            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
            webRequest.Timeout = 120000;
            webRequest.ReadWriteTimeout = 300000;

            // Set default authentication for retrieving the file
            //webRequest.Credentials = new NetworkCredential(GlobalVariables.username, GlobalVariables.password);
            webRequest.UseDefaultCredentials = true;

            // Retrieve the response from the server
            Logger.WriteToLog("Before webresponse");
            using (HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse())
            {
                Logger.WriteToLog("After webresponse");

                // Ask the server for the file size and store it
                //Int64 fileSize = webResponse.ContentLength;

                // Open the URL for download 
                using (Stream strResponse = webResponse.GetResponseStream())
                {
                    // Create a new file stream where we will be saving the data (local drive)
                    strLocal = File.Create(destFilePath);

                    // Loop through the buffer until the buffer is empty
                    while ((bytesSize = strResponse.Read(downBuffer, 0, downBuffer.Length)) > 0)
                    {
                        if (isPaused)
                            waitRun_m.WaitOne();

                        if (isCanceled)
                            break;

                        strLocal.Write(downBuffer, 0, bytesSize);
                        // Invoke the method that updates the form's label and progress bar
                        UpdateProgessCallback(mediaName, bytesSize);
                    };

                    strResponse.Close();
                }

            }
国王

我尝试了ServicePoint类方法,现在可以正常工作了。我所做的是,在为webrequest添加了readwritetimeout之后,我使用以下语句为连接组分配了名称:

webRequest.ConnectionGroupName = some_name;

当关闭连接时:

webRequest.ServicePoint.CloseConnectionGroup(some_name);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

OkHTTPClient挂在Multipart请求上

来自分类Dev

PyZMQ请求套接字-挂在context.term()上

来自分类Dev

SqlDataReader挂在Dispose()上

来自分类Dev

SqlDataReader挂在Dispose()上

来自分类Dev

openSUSE挂在引导上

来自分类Dev

Gradle 挂在 transformClassesWithPreDexForRelease 上

来自分类Dev

Passportjs 挂在 serializeUser 上

来自分类Dev

为什么自定义curl HEAD请求会挂在weebly.com上?

来自分类Dev

Vagrant挂在Windows 7上

来自分类Dev

挂在getEnumeration()上的JMS QueueBrowser

来自分类Dev

Ubuntu挂在紫色屏幕上

来自分类Dev

Ubuntu挂在紫色屏幕上

来自分类Dev

Debian Jessie挂在引导上

来自分类Dev

DOMDocument挂在丢失的图像上

来自分类Dev

GDB永远挂在Solaris上

来自分类Dev

DBAN挂在PCI(sysfs)上

来自分类Dev

挂在nextInt()上的基本程序

来自分类Dev

挂在Gnome电源按钮上

来自分类Dev

lldb挂在Alpine Linux上

来自分类Dev

挂在 If 语句上的 EggPlant 脚本

来自分类Dev

在多个请求上测试Api 404

来自分类Dev

请求挂在express.js中

来自分类Dev

SQLite3请求挂在扭曲

来自分类Dev

packaged_task挂在operator()上

来自分类Dev

Shell脚本挂在awk命令上

来自分类Dev

Image.FromFile()或FromStream()挂在GdiplusStartup上

来自分类Dev

视频记录挂在IMFSinkWriter-> Finalize()上;

来自分类Dev

挂在某些库上的“去获取”

来自分类Dev

Git push挂在大型存储库上