我正尝试在 HttpWebRequest 的帮助下将长视频上传到jwplatform。我将Timeout设置如下。当我上传数据时会抛出错误。
请求已中止:操作已超时
事件虽然服务器超时已经足够权衡响应,但是我仍然返回相同的错误。
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等待数据完全上传的帮助将受到高度赞赏。 提前致谢。
答案 0 :(得分:0)
您可以使用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();
}
}