下载大型图像文件时出现webrequest超时

本文关键字:webrequest 超时 大型 图像 文件 下载 | 更新日期: 2023-09-27 18:27:42

尝试通过WebDAM(第三方内容管理系统)的API下载大型视频文件时,会导致网络请求超时。以下是用于获取视频的基本代码。

public void StreamAsset(String AssetID, HttpResponse Response)
    {
            WebRequest request = request = WebRequest.Create(_api_url_v2 + "assets/" + AssetID + "/download");
            request.Timeout = 200000;
            // add OAuth header
            request.Headers.Add("Authorization", "Bearer " + _access_token);
            // get response from WebDAM web service
            WebResponse response = request.GetResponse();
            using (Stream file = response.GetResponseStream())
            {
                Int32 bytesRead = 0;
                Byte[] buffer = new Byte[524000];
                while ((bytesRead = file.Read(buffer, 0, buffer.Length)) > 0)
                {
                    if (Response.IsClientConnected)
                        Response.OutputStream.Write(buffer, 0, bytesRead);
                    else
                        break;
                }
                file.Close();
            }
        }

    }

有没有更有效的方法来写这段代码,或者我只需要增加timeout属性。

我得到了相当标准的跟随错误。

堆栈跟踪:[HttpException(0x80004005):请求超时。]

下载大型图像文件时出现webrequest超时

尝试在Web.config文件中添加httpRuntime超时,如下所示。。。

<system.web>
    <httpRuntime executionTimeout="n"/>
</system.web>

其中n是在ASP.NET自动关闭请求之前允许执行的秒数。