【发布时间】:2014-05-03 03:22:20
【问题描述】:
我有以下代码...在第一次迭代中,它查询服务器就好了。但是如果出现错误,return action() 会被调用,但 Fiddler 上没有任何反应,并立即跳转到 catch 块。发生了什么?
for (int retry = 0; retry < retryCount; retry++)
{
try
{
return action();
}
catch (WebException ex)
{
// truncated for clarity
}
}
它叫Retry.Do(() => HttpReturnJson(request), TimeSpan.FromSeconds(15), 3);
这就是我的HttpReturnJson 的样子:
EDITED 我尝试将 WebResponse 和 StreamReader 包含在 using 块内...似乎不是 old WebResponse response 是被处置。在重试时,我仍在阅读旧的。重试时如何重新发送request?
public string HttpReturnJson(HttpWebRequest request)
{
using (WebResponse response = request.GetResponse())
using (var stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
string data = reader.ReadToEnd();
return data;
}
}
【问题讨论】:
标签: c# http httprequest httpresponse