操作超时,怎么解决呢,谢谢了 HttpWebResponse response = (HttpWebResponse)request.GetResponse();就是这里了,我设置超时时间是2分钟都不行,有时候网速真的很差。。请问怎么改改让他超时后重新连呢???谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个我一般都是捕获异常了再继续连接的lz可以在try{}catch()中写代码判断另外还可以设置个标记判断重新连接的几次可以在超过几次后就不再连接了 for(int i; i < 99; i++) { try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); break; } catch { } }我这样用不对,response这个东西就变成这个for循环内用的变量了。。该怎么做呢? 有大侠给过我这个重写的代码,但是仍旧是那个问题,那个response的变量作用范围还是不对。。 HttpWebResponse GetResponse() { try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); return response; } catch { return GetResponse(); } } 设置超时时间不管用是一个bug,微软号称要改的... try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); } catch { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); }要是只用这个,就只能重新再来一次吧,怎么能不停的异常就重试呢??? //连接的方法public void Connect(bool flag,int count){ while(!flag) { if(count>4)//连接次数小于4次 { return; } else { try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); flag = true; } catch { Connect(flag,count++) } } }}大致就上面这个样子,需要楼主去调试下,或者稍做修改 这样的话,那个respon的作用范围不就是仅限于Connect这个函数内了么???还有那个request实例,没有传递呀??不太懂。 修改一下 嘿嘿 HttpWebResponse GetResponse(HttpWebResponse response) { try { response = (HttpWebResponse)request.GetResponse(); return response; } catch { return GetResponse(response); } } 我自己修改了一下,大家帮看看: private HttpWebResponse Connect(bool flag, HttpWebRequest rq) { while(!flag) { try { HttpWebResponse rp = (HttpWebResponse)rq.GetResponse(); flag = true; return rp; } catch { Connect(flag, rq); } } }提示错误:“CC.XiaoNeiLogin.Connect(bool, System.Net.HttpWebRequest)”: 并非所有的代码路径都返回值 需要return Connect(flag, rq);才行。 private HttpWebResponse Connect(bool flag, HttpWebRequest rq) { while(!flag) { try { HttpWebResponse rp = (HttpWebResponse)rq.GetResponse(); flag = true; return rp; } catch { return Connect(flag, rq); } } return Connect(flag, rq); }然后我在类的其他方法里面这样用:HttpWebResponse response = this.Connect(false, request);大家帮我看下这样对了吧,帮我挑挑问题呀,或者有更好的写法告诉我一下,谢谢了 //没有设置代理的: #region Proxy //获取IE缺省设置 WebProxy proxy = WebProxy.GetDefaultProxy(); //如果缺省设置为空,则有可能是根本不需要代理服务器,如果此时配置文件中也未配置则认为不需Proxy if (proxy.Address == null) proxy.Address = new Uri("192.168.8.108:8080");//按配置文件创建Proxy 地置 //request.Credentials = CredentialCache.DefaultNetworkCredentials; request.Proxy = proxy; #endregion C#操作Excel时提示Excel.Range的select()方法无效 C# 做考勤系统 关于刷卡出发事件的问题!!!急!!在线等、!!!! 如何解决新建word后打开时不是只读的情况 路径问题 .NET 中怎么把图片寸存数据库,怎么读出来显示在页面上!c语言 C# 移动设备 自动或手动连接GPS和GPRS 方法(最好有代码) 谁开发过类似阿里爸巴巴“贸易通”的客户端程序 资源嵌入的问题 如何可以提取出html中的图片路径? DataGrid中的cell如何捆绑ComboBox Winform 窗体 仿QQ换颜色? 在VS2005的C# Winform程序里安装“全局钩子”失败的问题
lz可以在try{}catch()中写代码判断
另外还可以设置个标记判断重新连接的几次
可以在超过几次后就不再连接了
{
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
break;
}
catch
{
}
}我这样用不对,response这个东西就变成这个for循环内用的变量了。。该怎么做呢?
{
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
return response;
}
catch
{
return GetResponse();
}
}
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
}
catch
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
}
要是只用这个,就只能重新再来一次吧,怎么能不停的异常就重试呢???
public void Connect(bool flag,int count)
{
while(!flag)
{
if(count>4)//连接次数小于4次
{
return;
}
else
{
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
flag = true;
}
catch
{
Connect(flag,count++)
}
}
}
}大致就上面这个样子,需要楼主去调试下,或者稍做修改
{
try
{
response = (HttpWebResponse)request.GetResponse();
return response;
}
catch
{
return GetResponse(response);
}
}
private HttpWebResponse Connect(bool flag, HttpWebRequest rq)
{
while(!flag)
{
try
{
HttpWebResponse rp = (HttpWebResponse)rq.GetResponse();
flag = true;
return rp;
}
catch
{
Connect(flag, rq);
}
}
}提示错误:
“CC.XiaoNeiLogin.Connect(bool, System.Net.HttpWebRequest)”: 并非所有的代码路径都返回值
需要return Connect(flag, rq);才行。
{
while(!flag)
{
try
{
HttpWebResponse rp = (HttpWebResponse)rq.GetResponse();
flag = true;
return rp;
}
catch
{
return Connect(flag, rq);
}
}
return Connect(flag, rq);
}
然后我在类的其他方法里面这样用:
HttpWebResponse response = this.Connect(false, request);大家帮我看下这样对了吧,帮我挑挑问题呀,或者有更好的写法告诉我一下,谢谢了
#region Proxy
//获取IE缺省设置
WebProxy proxy = WebProxy.GetDefaultProxy();
//如果缺省设置为空,则有可能是根本不需要代理服务器,如果此时配置文件中也未配置则认为不需Proxy
if (proxy.Address == null)
proxy.Address = new Uri("192.168.8.108:8080");//按配置文件创建Proxy 地置 //request.Credentials = CredentialCache.DefaultNetworkCredentials;
request.Proxy = proxy; #endregion