HttpWebRequest发送数据超时后修复处理

    最近遇到一个问题请教下,在一个时间控件中写了一个HttpWebRequest以post的形式发送,设置了发送超时5秒,但当我网络不好断了一段时间网络,然后再连接上后,就不可以继续发送请求了,不知道有没有什么可以修复的方法和属性,下面是我的代码段

strParams = HttpUtility.UrlPathEncode(strParams);      

                byte[] byteRequest = Encoding.Default.GetBytes(strParams);//编码    

                HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(new Uri(consumer.ConsumerAddress.ToString().Trim())); 

                httpWebRequest.Credentials = CredentialCache.DefaultCredentials;                 httpWebRequest.ContentType = "application/x-www-form-urlencoded";//这一个参数似乎是必需的。

                httpWebRequest.Method = "POST";//这个是请求方法,必须是POST,这个可以通过分析实际登录的情况得到采用的方法      

                httpWebRequest.Timeout = consumer.ConsumerTimeOut;                 httpWebRequest.ContentLength = byteRequest.Length;//POST数据的长度,这个参数是必需的。              

                httpWebRequest.ProtocolVersion = HttpVersion.Version10;                 httpWebRequest.KeepAlive = false;                 //下面是发送数据到服务器           

                Stream stream = httpWebRequest.GetRequestStream();             

                stream.Write(byteRequest, 0, byteRequest.Length);                 stream.Close();                

                HttpWebResponse webResponse = (HttpWebResponse)httpWebRequest.GetResponse();//取服务器的响应            

                StreamReader streamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8);

在最后一句会有异常

呼啦一阵风
浏览 549回答 4
4回答

慕斯709654

可能是时间超时了。你把时间设置长一点。

Cats萌萌

你说的修复是把发送失败的数据重新发送一下吗? 如果不是的话  只要有个try catch就可以了啊

qq_遁去的一_1

试试:httpWebRequest.KeepAlive = true;
打开App,查看更多内容
随时随地看视频慕课网APP