首页 > 解决方案 > HttpWebRequest 请求被中止:操作已超时

问题描述

我正在尝试借助HttpWebRequest将长视频上传到 jwplatform 。我已将超时设置如下。当我上传数据时,它会抛出错误。

请求被中止:操作已超时

事件虽然服务器超时足以衡量响应,但我仍然返回相同的错误。

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(callUrl);
            request.ContentType = "multipart/form-data; boundary=" +
                                    boundary;
            request.Method = "POST";
            request.KeepAlive = true;
            request.Timeout= 24*60*60*1000;
...
            using (var response = request.GetResponse())
            {
                Stream stream2 = response.GetResponseStream();
                StreamReader reader2 = new StreamReader(stream2);
                res = reader2.ReadToEnd();
            }

我正在使用上面的 GetResponse() 方法。

任何有关我如何强制 webrequest 等到数据完全上传的帮助将不胜感激。提前致谢。

标签: c#asp.net-mvchttpwebrequestjwplayerjwplayer7

解决方案


您可以使用request.GetResponseAsync ().等使用异步任务来正确等待响应。

为了帮助你,它会是这样的:

public  async Task<string> InfoAnswerAsync(WebRequest request)
 { 
using (var response = await request.GetResponseAsync())
{
    using (var stream = response.GetResponseStream())
        if (stream != null)
            using (var reader = new StreamReader(stream))
            {
                return await reader.ReadToEndAsync();
            }
}

推荐阅读